android - 通过相机获取最近拍摄的图像的路径和图像名称

标签 android image ftp camera

我必须将捕获的图像上传到 ftp 服务器。我正在通过相机捕获图像,我想获取图像名称和该图像的路径。我正在使用以下代码获取图像路径:

int ACTION_TAKE_PICTURE = 1;
String selectedImagePath;
Uri mCapturedImageURI;

Button loadButton;
ImageView img;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_ftpsdemo);
     img = (ImageView)findViewById(R.id.image);

    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, "yahoo.jpg");
    mCapturedImageURI  = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    Intent intentPicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intentPicture.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
    startActivityForResult(intentPicture,ACTION_TAKE_PICTURE);

}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == ACTION_TAKE_PICTURE){
        selectedImagePath = getRealPathFromURI(mCapturedImageURI);
        Log.v("selectedImagePath", selectedImagePath);
        img.setImageBitmap( BitmapFactory.decodeFile(selectedImagePath));
    }
}


public String getRealPathFromURI(Uri contentUri)
    {
        try
        {
            String[] proj = {MediaStore.Images.Media.DATA};
            Cursor cursor = managedQuery(contentUri, proj, null, null, null);
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        }
        catch (Exception e)
        {
            return contentUri.getPath();
        }
    }

但我得到的图像路径是这样的:

/mnt/sdcard/DCIM/Camera/1352443194885.jpg

因为我正在保存名称“yahoo.jpg”。 我知道这可能是一个非常简单的问题,但我无法获得相同的图像名称和路径。 所以我无法将图像上传到 ftp 服务器。

最佳答案

检查这个...把这个放在你的 onActivityResult 中

           Uri selectedImage = intent.getData();

           String[] filePathColumn = {MediaStore.Images.Media.DATA};
           Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
           cursor.moveToFirst();
           int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
           String filePath = cursor.getString(columnIndex);
           Log.v("log","filePath is : "+filePath); 

关于android - 通过相机获取最近拍摄的图像的路径和图像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13303445/

相关文章:

ftp - 如何从被动模式获取 FTP 协议(protocol)中的端口?

反转图像的黑白颜色

ios - 如何在 ARKit 中重新扫描图像?

Android 选项菜单总是关闭

android - Espresso : how to scroll to the bottom of ScrollView

image - 更改 skspritenode() 的图像

upload - 拖放 ftp 文件上传 Web 小部件

php - php 可以忽略 ftp 数据通道的建议 ip 并直接转到服务器吗?

android - 当您的应用程序关闭且没有 firebase 时如何推送通知?

android - 根据数据库中的日期在android中设置计时器