我们有一个应用程序,并获得了一些权限。然后,用户将撤销设置 -> App->权限的权限。我提到该应用程序在这段时间内。
有时,当上述流动发生时,应用程序会崩溃。有什么方法可以处理吗?我们可以知道何时从应用程序设置撤销许可?
我没有找到与此主题相关的任何正式文档。
场景:
- 打开应用程序并提供所有权限。
- 单击"主页"按钮(在后台应用程序)。
- 手动撤销设置的权限。
- 返回到应用程序 ->它崩溃
谢谢。
当您以前由用户授予的runtime permission
撤销时,没有记录有关接收事件的事情,,因此Broadcast receiver
在这里无济于事。>
此外,如果用户撤销了权限,则您的过程将被终止,这取决于该关键许可。
如果上述情况失败,则可以使用checkSelfPermission()
调用。实际上在执行任何关键操作之前检查权限是一个好习惯
返回应用程序 ->它崩溃
从来没有发生过。也许我没有尝试过;-)必须以某种方式杀死依赖过程,以便您可以在下次调用何时调用代码。如果您正在使用activity
或fragment
,则应使用onResume()
,可以在其中使用checkSelfPermission()
。
从SO链接之一获得参考
您应该检查是否授予许可,并根据您的要求处理它:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case //location_permission_code:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
} else {
}
break;
}
}