java读取外部存储权限,应用程序崩溃,尽管我在清单中有此项
我的权限有问题。我应该如何阻止我的应用程序崩溃
主要活动。爪哇
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == RESULT_OK && data != null){
Uri selectedImage = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
ImageView imageView = (ImageView)findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
AndroidManifest。xml
<uses-permission 安卓:name="安卓.permission.READ_EXTERNAL_STORAGE" />
# 1 楼答案
我做你想做的事。我给你简单的代码,如何做到这一点:)
在这里我检查权限(我在片段中调用这个方法,在活动中创建它)
这将检查自动消息的权限 此外,我还请求权限
记住在活动中制定方法。请检查一下
最后,我做了这样的事情来检查片段中的权限
希望这个示例代码对你有帮助
# 2 楼答案
我刚刚在OnCreate方法中添加了这个
这似乎有效,有没有更好的解决方案
# 3 楼答案
如果您的目标构建版本是API 23或更高版本,只需检查是否授予了该权限。 转到设置->;应用,然后点击你的应用。在权限选项中启用存储权限。但这并不是永久的解决方案
# 4 楼答案
如果把你的
onCreate()
作品放进去,我会检查你是否把它放在清单的正确位置,因为这在过去给我带来了麻烦确保
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
在第一个清单结束标记之后,在第一个<Application ...
之前例如:
# 5 楼答案
试试这个: