1

画像をSDカードに保存しようとしていますが、コードを追加しました。カメラの[OK] /チェックマークをクリックすると、アプリが終了します。保存しようとしているディレクトリを確認する必要がありますか?存在しますか?どうすればよいですか?..!file.exists(){file.mkdirs}?..私のコードでは、すべてのSDカードに存在する/Androidフォルダーに保存しようとしました。

           file = new File(Environment.getExternalStorageDirectory().getPath()
                 + "/Android/" + "bhe_app" + ".jpg");

    imageUri = Uri.fromFile(file);

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        i.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

        startActivityForResult(i, cameraData);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        iv.setImageBitmap(bmp);


    }
}
4

2 に答える 2

3

ファイルを作成する前にディレクトリを作成してください。

boolean createdDirectory = new File(Environment.getExternalStorageDirectory().getPath() + "/directory1/directory2/directory3/").mkdirs();

変数createdDirectory

ディレクトリが作成された場合にのみ、必要なすべての親ディレクトリとともにtrueになります。それ以外の場合はfalse

アプリにSDカードへの書き込み権限があることを確認する必要があります(チェックしてくださいAndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2012-05-29T19:06:31.437 に答える
0

あなたはに許可を与えましたかWrite_External_StorageAndroidManifest.xmlそれはSDカードに写真を保存するために重要です

于 2012-05-29T18:45:09.747 に答える