我已经实现了权限android.permission.CALL_PHONE
。问题是,在进行测试时,取消权限后不会再询问该权限。
也就是说,如果我在运行时请求它,并且我说如果我想允许调用,它会完美运行,但是如果我说我不想允许调用,那么我将无法再次询问它下次打开应用程序。
应用程序是否可以通过任何方式再次请求许可?如果没有,是否有任何方法可以将用户发送到应用程序信息以从那里接受信息?
谢谢。
答案 0 :(得分:2)
简短回答-如果用户被拒绝并再次勾选“不再询问”,则无法再次询问“权限”。
但是您可以显示一些有意义的消息,并要求用户手动为您的应用启用权限。您还可以在Android设置下将用户重定向到“应用权限”页面。
您可以使用shouldShowRequestPermissionRationale
检查用户是否早先拒绝了它。
您可以阅读有关权限https://developer.android.com/training/permissions/requesting
的更多信息我使用以下代码库实现权限检查
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_PERMISSION) {
// Permission check if the user granted/denied them you may want to group the rationale in a single dialog
for (int i = 0, len = permissions.length; i < len; i++) {
String permission = permissions[i];
if (grantResults[i] == PackageManager.PERMISSION_DENIED) {
// denied the permission
boolean showRationale = shouldShowRequestPermissionRationale( permission );
if (! showRationale) {
// User ticked "never ask again"
// Show some meaningful message
} else if (Manifest.permission.WRITE_CONTACTS.equals(permission)) {
showRationale(permission, R.string.permission_denied_contacts);
// NOT ticked "never ask again"
} else if ( /* possibly check more permissions...*/ ) {
}
}
}
}
}