【发布时间】:2017-06-13 14:26:26
【问题描述】:
嘿,我正在尝试请求存储访问权限,但我注意到在我的另一部具有 android 5.0 的手机中,请求权限会使应用程序崩溃。在这个 android 版本中我应该怎么做才能在不使应用程序崩溃的情况下请求许可,我应该从哪个 android 版本开始呢?
这是请求权限的代码:
int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 0;
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (shouldShowRequestPermissionRationale(
Manifest.permission.READ_EXTERNAL_STORAGE)) {
// Explain to the user why we need to read the contacts
}
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
// MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE is an
// app-defined int constant that should be quite unique
return;
}
【问题讨论】:
-
从 API 级别 23+
-
对于所有级别,您必须在 AndroidMenifest.xml 文件中添加权限,但对于 api >=6,您必须在代码中添加额外权限,就像您在代码中所做的那样。对于像github.com/googlesamples/easypermissions这样的android开发使用库的binning它可以简化你的工作
标签: java android api permissions android-permissions