【发布时间】:2017-05-05 11:29:04
【问题描述】:
我试图在 Android 7.0 上显示多个权限请求
此代码在 Android sdk 23 上运行没有问题。
SDK 24 显示一次请求,如果我触摸允许或拒绝按钮,此代码工作一次并且不显示其他请求。
代码在这里;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
if (checkSelfPermission(Manifest.permission.READ_SMS) == PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{Manifest.permission.READ_SMS}, 1);
}
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
}
}
【问题讨论】:
-
而不是三个
requestPermissions()调用,有 一个requestPermissions()调用,用于您需要的特定权限组合。我使用实用程序netPermissions()方法来简化这一点,例如this sample activity。
标签: java android android-permissions runtime-permissions