我正在尝试从我的应用程序调用默认设备相机以使用意图android.provider.MediaStore.ACTION_IMAGE_CAPTURE拍照。一切似乎都工作正常,除了当我单击并保存它存储在两个位置的特定图像时
1. At the default camera location.
2. At the location which i am passing with intent.
我只希望第二个选项发生,而不是第一个。我认为在使用的定义位置创建一个 .nomedia 文件可以确保图片不会被列为图库的一部分,但后来我发现图片存储在两个位置。
我的相关代码部分是:
在活动中:
Intent intentCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
try {
tempDir = Environment.getExternalStorageDirectory();
// place where to store camera taken picture
photo = createTemporaryFile("picture", ".jpg", tempDir);
photo.delete();
} catch (Exception e) {
Toast.makeText(this, "Please check SD card! Error in fetching image",
Toast.LENGTH_SHORT).show();
}
if (photo != null) {
Uri mImageUri = Uri.fromFile(photo);
Log.i(TAG, "" + mImageUri.toString());
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
}
startActivityForResult(intentCamera, CAMERA_PIC_REQUEST);
对应的方法。
public File createTemporaryFile(String part, String ext,File tempDir) throws Exception {
tempDir = new File(tempDir.getAbsolutePath() +"/temp/");
if (!tempDir.exists()) {
tempDir.mkdir();
}
createNoMediaFile(tempDir.getAbsolutePath());
return File.createTempFile(part, ext, tempDir);
}
有没有办法可以避免 1 即将图像保存到默认画廊位置。谢谢。