普通にUriからgetPathメソッドでPathを取得すると、
「/external/images/media/401」
のような形でパスの内容が取得されます。
これを実際のファイルパスである、
「/mnt/sdcard/Test_20111101_145318.jpg」
のような形で取得する為には、「ContentResolver」を使用する必要があります。
Uriからファイルパスを取得する実際の処理は以下のとおり。
/**
* UriからPathへの変換処理
* @param uri
* @return String
*/
public static String getPath(Context context, Uri uri) {
ContentResolver contentResolver = context.getContentResolver();
String[] columns = { MediaStore.Images.Media.DATA };
Cursor cursor = contentResolver.query(uri, columns, null, null, null);
cursor.moveToFirst();
String path = cursor.getString(0);
cursor.close();
return path;
}