1

我正在尝试将图像保存到 SD 卡并为其添加了一些代码。但是在单击相机中的“确定”/复选标记后,我的应用程序退出了。我是否必须检查我试图将其存储在的目录存在吗?我该怎么做?...!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将是

当且仅当创建了目录以及所有必要的父目录时才为真;否则为假

您必须确保您的应用有权写入 SD 卡(检查您的AndroidManifest.xml

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

您是否已授予权限,这对于将照片保存Write_External_StorageAndroidManifest.xmlsd 卡上很重要

于 2012-05-29T18:45:09.747 回答