2011-12-07 65 views
2

我编写了一些拍摄照片的代码,我想查找刚拍摄的位图文件的名称。如何找到刚刚拍摄的位图文件的名称

我知道如何获取位图 - 但我不想获取位图 - 我只需要保存在SD卡上的文件的名称。当你得到的结果

//define the file-name to save photo taken by Camera activity 
//imageUri is the current activity attribute, define and save it for later usage (also in onSaveInstanceState) 
mImageUri = getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues()); 
Intent photoFromCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
photoFromCamera.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); 
startActivityForResult(photoFromCamera, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

然后:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    if (requestCode == 0) 
    {  
     // This is the file name that i need to find ... 
     Bitmap image = (Bitmap) data.getExtras().get("data"); 

回答

1

你可以做到这一点

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode){ 
    case CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE: 
     if (resultCode == RESULT_OK) { 
      Log.i(TAG, "Camera: "+ mImageUri); 
      String path = getRealPathFromURI(mImageUri); 
      Log.d(TAG, "Result image path from camera: "+path); 

     } 
     break; 

辅助方法:

private String getRealPathFromURI(Uri contentUri) { 

    // can post image 
    String [] proj={MediaStore.Images.Media.DATA}; 
    Cursor cursor = managedQuery(contentUri, 
        proj, // Which columns to return 
        null,  // WHERE clause; which rows to return (all rows) 
        null,  // WHERE clause selection arguments (none) 
        null); // Order-by clause (ascending by name) 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 

    String res = cursor.getString(column_index); 
    cursor.close(); 

    return res; 
} 
+0

对不起,这是行不通的( – Yanshof

+0

)它抛出一个异常吗?或者你只是没有得到的价值。尝试让图像上的光标,但传递null作为投影,然后使用DatabaseUtils.dumpCursorToString()检查查看Android的存储位置的列 –

+0

未知的异常被丢弃 – Yanshof

0

您可以通过使用FileObserver媒体或新照片将被存储的目录。 我希望这有助于!

+0

好的,我该如何使用它? – Yanshof

相关问题