これが 2.2 での動作です (以前のバージョンとは異なります)。インテント開始時
String fileName = "temp.jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
startActivityForResult(intent, CAPTURE_PICTURE_INTENT);
覚えておく必要がありますmCapturedImageURI
。
画像をキャプチャするときは、onActivityResult()
その URI を使用してファイル パスを取得します。
String[] projection = { MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null);
int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String capturedImageFilePath = cursor.getString(column_index_data);
更新:新しい Android デバイスでは MediaStore.EXTRA_OUTPUT は必要ありませんが、onActivityResult(..., Intent data) から受け取った data.getData() から画像/動画の URI を推測します。
Android ACTION_IMAGE_CAPTURE インテント
ただし、この部分はメーカーの適応の対象となるため、「古い」アプローチが役立つ可能性がある電話機にまだ遭遇する可能性があります.