写真を撮らずに、カメラの写真の実際のパスを取得したいと思います。
私が今使っているのは:
String path=""; //The real path I want...
String[] projection=new String[]{MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA, MediaStore.Images.ImageColumns.DATE_TAKEN};
final Cursor c=context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.ImageColumns.DATE_TAKEN+" DESC");
if(c!=null)
{
c.moveToFirst();
path=c.getString(1);
Log.i(Constants.TAG, "File Path: "+path);
path=path.substring(0, path.lastIndexOf('/')+1);
}
しかし、上の結果はいつか変わった...
通常の場合、/storage/ext_sd/DCIM/100MEDIA/になります。
(私は HTC バタフライ、アンドロイド 4.1.1、United Stats で DroidDNA と呼ばれるまったく同じモジュールを使用しています)
今日の午後、写真の一部を別のフォルダーに移動した後 (PC ではなく電話で操作します)
結果は/storage/ext_sd/[some_other_of_my_image_folder]/に変更されました
カメラ写真の実際のパスを取得するにはどうすればよいですか? 私を助けてください :-(
編集:次のような別の方法を試しています:
Log.i(Constants.TAG, "Photo path: "+f.getPath());
if(f.exists())
{
File test1=new File(f, "100MEDIA/");
if (test1.exists())
{f=test1;}
else
{
File test2=new File(f, "100ANDRO/");
if(test2.exists())
{f=test2;}
else
{
File test3=new File(f, "Camera/");
if(!test3.exists())
{test3.mkdirs();}
f=test3;
}
}
}
else
{
f=new File(f, "Camera/");
f.mkdirs();
}
/storage/sdcard0/DCIM/100MEDIA/のようなパスが返されました。これは、私の電話の内部 16GB スペースです。
カメラの写真ストアを外部 microSD に設定済みで、そのパスは/ext_sd/DCIM/100MEDIA/である必要があります。
本当に助けが必要です、MEDIC !