6

次のコードを使用して、カメラから写真を撮り、写真のパスを取得します。

...
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_IMAGE_CAPTURE); // image capture
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.d(TAG, "onActivityResult:" + resultCode + " request:" + requestCode);

    switch (requestCode) {
        case CAMERA_IMAGE_CAPTURE:
            Uri selectedImageUri = data.getData();
            userImagePath = getPath(selectedImageUri);
        break;
    }
}

エミュレーターやさまざまなデバイスでうまく機能します。ただし、Samsung Galaxy Nexus(4.0.2) ではカメラ アプリが起動しません。しかし、onActivityResult に RESULT_OK を返し、LogCat に例外は見られません。この問題を解決する方法とアドバイスをお願いします。前もって感謝します!

4

1 に答える 1

7

がありませんEXTRA_OUTPUT。問題に影響する可能性があります。私の Galaxy Nexusは、次のコードを使用して画像を要求するこのサンプル プロジェクトを正常に実行できます。

Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);

output = new File(dir, "CameraContentDemo.jpeg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));

startActivityForResult(i, CONTENT_REQUEST);
于 2012-07-13T12:31:07.713 に答える