0

呼び出して、カメラで撮影した保存済みの写真のパスを表示しようとしています

`data.getdata` 

Toast 内で実行しますが、アプリがクラッシュします。私も試しdata.getDataStringましたが解決しませんでした

なんでも。

コード:

@Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My Images");
            imagesFolder.mkdirs();
            File image = new File(imagesFolder, "img01");
            Uri uriSavedImage = Uri.fromFile(image);
            imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
            startActivityForResult(imageIntent,CAMERA_REQUEST_CODE);
        }
    });
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if ((requestCode == CAMERA_REQUEST_CODE) && (resultCode == RESULT_OK)) {
        Toast.makeText(getApplicationContext(), "Image Saved To: "+data.getData(), Toast.LENGTH_SHORT).show();
    }
4

3 に答える 3

1

カメラの意図の結果の問題

これに目を通した..

data.getExtras().get(TAG); を試しましたか? ?

于 2012-03-21T13:18:08.700 に答える
1

インテントからエクストラ バンドルを取得すると、結果のデータにアクセスできます。

Bitmap thumbnail = (Bitmap) data.getExtras().get("data");

タグ「データ」がすべての電話で有効であるとは限らないので、null チェックを忘れないでください。

編集:コードをより正確にしました。つまり、ここで正確なソリューションを提供します。

于 2012-03-21T13:13:16.490 に答える
0

また、data.getData().toString()

data.getData().toString()動作するはずです。ただし、保存されている画像の実際のパスは実際にはわかりません。それはむしろあなたURIにそのイメージを与えるでしょう。を使用してその uri を解析する必要があります。

public String getRealPathFromURI(String uriString) {
    try {
        String[] proj = { MediaStore.Image.Media.DATA};
        Log.d("First", proj[0]);
        Cursor cursor = managedQuery(Uri.parse(uriString), proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Image.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return "Alas!";
}
于 2012-03-21T13:19:05.283 に答える