我试图让用户选择提供他们过去拍摄的照片,或者立即拍摄新照片。问题在于,当我尝试使用图像时,我得到了拒绝的权限。"
这是我选择意图的地方:
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类并且它停止了工作(我没有改变其他任何东西 - 我所做的只是将它变成片段)。
任何人都有关于如何解决这个问题的想法?
答案 0 :(得分:0)
问题可能在.startActivityForResult()方法中。您的代码中没有.onActivityResult()方法