Image Capture Intent使图像文件具有不同的权限

时间:2016-06-23 19:50:12

标签: java android android-intent

我试图让用户选择提供他们过去拍摄的照片,或者立即拍摄新照片。问题在于,当我尝试使用图像时,我得到了拒绝的权限。"

这是我选择意图的地方:

final File root = new File(Environment.getExternalStorageDirectory() + File.separator + "MyDir" + File.separator);
root.mkdirs();
final String fname = "img_" + System.currentTimeMillis() + ".jpg";
outputFileUri = Uri.fromFile(new File(root, fname));

Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE_SECURE);
takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
Intent pickPhotoIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
pickPhotoIntent.setType("image/*");

Intent chooserIntent = Intent.createChooser(pickPhotoIntent, "Take a photo or select one from your device");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {takePhotoIntent});

startActivityForResult(chooserIntent, 1);

outputFileUri是类中的字段变量。我用它来加载图像:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
     /...
     String url = selectedImageUri.toString();
     final Bitmap image = Picasso.with(context).load(url).get();

我收到如下错误:

java.io.FileNotFoundException: /storage/emulated/0/MyDir/img_1466710420779.jpg: open failed: EACCES (Permission denied)

当我在Activity类中使用它时,它曾经工作过,但是我将它转换为Fragment类并且它停止了工作(我没有改变其他任何东西 - 我所做的只是将它变成片段)。

任何人都有关于如何解决这个问题的想法?

1 个答案:

答案 0 :(得分:0)

问题可能在.startActivityForResult()方法中。您的代码中没有.onActivityResult()方法