我正在尝试将图像保存到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);
}
}
答案 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_Storage
中AndroidManifest.xml
的许可,这对于在SD卡上保存图片非常重要