gpt4 book ai didi

java - 文件未找到异常 : open failed: EACCES (Permission denied)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:30 24 4
gpt4 key购买 nike

在模拟器中(我使用 genymotion)它工作正常,但是当我在真实设备上运行它时(我的手机是 ASUS ZenFone Laser 5.0)抛出一个 filenotfoundexception

java.io.FileNotFoundException:/storage/emulated/0/cam20160926_075819.jpg: 打开失败:EACCES(权限被拒绝)

imgBitmap = MediaStore.Images.Media.getBitmap(cr, selectedImage);

这是 onActivityResult() 方法

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case CAMERA_REQUEST:
if (resultCode == Activity.RESULT_OK){
Uri selectedImage = imageUri;
getActivity().getContentResolver().notifyChange(selectedImage, null);
ContentResolver cr = getActivity().getContentResolver();
Bitmap imgBitmap;
try {
imgBitmap = MediaStore.Images.Media.getBitmap(cr, selectedImage);

accountPhoto.setImageBitmap(imgBitmap);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getActivity().getApplicationContext(), "Something went wrong while taking a photo", Toast.LENGTH_LONG).show();
Log.e("Camera", e.toString());
}

}
}
}

我看了一些关于这个EACCES的相关问题和解决方案,看来问题是在我的允许下:

<uses-feature android:name="android.hardware.camera2" android:required="true"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我错过了什么吗?谢谢回复

最佳答案

你必须在开始你的指令之前请求许可,因为这个许可在 Marshmallow 中被认为是危险的:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && 
checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, RESULT);
}
else
{
//your code
}

关于java - 文件未找到异常 : open failed: EACCES (Permission denied),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39693082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com