0
我需要5个权限用于我的应用程序。这是我已经添加到我的活动1的onCreate()代码:Android:请求多个权限时仅请求第一个权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 2);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.CAMERA}, 3);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.GET_ACCOUNTS}, 4);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.READ_CONTACTS}, 5);
}
}
当应用程序运行时,它只是询问的第一个权限,而不是其余。 我也提供了所有权限作为数组的请求权限功能,但我也看到只有第一个权限弹出。
有人可以请帮忙。我正在我的应用程序的版本的Android M设备上,我的目标和编译SDK版本是26
使用您需要的所有权限的单个String []来调用'requestPermissions()'一次。自定义'String []'只有你需要的权限,而不是用户已经授予的权限。请参阅[示例应用程序](https://github.com/commonsguy/cw-omnibus/tree/v8.6/Permissions/tutorial/finish/RuntimePermTutorial)。 – CommonsWare
已经尝试过,同样的问题被看到,我已经提到在问题 – Sid
然后,也许你做错了,或者你已经拥有其他权限(因此他们不需要)。再次请参阅[示例应用程序](https://github.com/commonsguy/cw-omnibus/tree/v8.6/Permissions/tutorial/finish/RuntimePermTutorial)或[此示例应用程序](https:// github .com/commonsguy/cw-omnibus/tree/v8.6/Media/AudioRecording),其中我请求没有问题的多个权限。 – CommonsWare