ACTION_IMAGE_CAPTUREインテントから画像のパスを取得する 質問する

ACTION_IMAGE_CAPTUREインテントから画像のパスを取得する 質問する

こんにちは。私は次のようにACTION_IMAGE_CAPTUREして画像をキャプチャしていますIntent

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(
MediaStore.EXTRA_OUTPUT, (new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + ".jpg"))
);
startActivityForResult(cameraIntent, 0);

画像を SD カードに保存し、onActivityResultメソッドを使用してその画像のパスを取得する必要があります。現在キャプチャされている画像の画像パスを取得する方法がわかりません。

知っている人がいたら助けてください。

ありがとう

ベストアンサー1

これは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 インテント

ただし、この部分はメーカーの適応に依存するため、「古い」アプローチが役立つ可能性のある携帯電話に遭遇する可能性があります。

おすすめ記事