Android:应用程序在尝试将图像保存到SD卡时退出

时间:2012-05-29 18:41:48

标签: android image save android-camera android-camera-intent

我正在尝试将图像保存到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);


    }
}

2 个答案:

答案 0 :(得分:3)

在创建文件之前创建目录。

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

变量createdDirectory将是

  

当且仅当创建目录时才显示true,以及所有目录   必要的父目录;否则是假的

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 1 :(得分:0)

您是否已获得Write_External_StorageAndroidManifest.xml的许可,这对于在SD卡上保存图片非常重要