2016-12-08 19 views
0

画像を保存しようとしていて、新しい画像についてギャラリーに警告しています。画像はギャラリーにすぐには表示されませんが、更新するまでに数時間かかることがあります。画像が保存された後にAndroidギャラリーが更新されない

String title = "title"; 
    String r = MediaStore.Images.Media.insertImage(getContentResolver(), State.pictureWithDekor, title, title); 
    Uri uri = Uri.parse(r); 
    MediaScannerConnection.scanFile(this, 
      new String[] { uri.getPath() }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 

       public void onScanCompleted(String path, Uri uri) { 
        Log.i("TAG", "Finished scanning " + path); 
       } 
      }); 

rの値insertImage後onScanCompletedでurinullで、content://media/external/images/media/2082次のとおりです。私は、次のコードを使用します。

私は間違っていますか?

答えて

0

問題は、MediaStore.Images.Media.insertImageから返されたパスがフィジカルパスではないことです。実際のパスを取得するには、使用:

public String getRealPathFromURI(Context context, Uri contentUri) { 
    Cursor cursor = null; 
    try { 
     String[] proj = { MediaStore.Images.Media.DATA }; 
     cursor = context.getContentResolver().query(contentUri, proj, null, null, null); 
     int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } finally { 
     if (cursor != null) { 
      cursor.close(); 
     } 
    } 
} 

出典:Get filename and path from URI from mediastore

関連する問題