我们有一个授予了一些权限的应用。然后,用户撤消设置中的权限 - >应用 - >权限。我在这个时候提到应用程序处于后台。
有时,当上述流程发生时应用程序崩溃。有办法处理这个吗?我们可以知道从应用设置中撤消权限的时间吗?
我没有找到任何与此主题相关的官方文档。
情景:
谢谢。
答案 0 :(得分:1)
当您的runtime permission
被撤销时,之前没有记录关于接收事件的事件,因此Broadcast receiver
在此处无效。
此外,如果用户撤销了权限,您的流程将被终止,这取决于该关键权限。
如果上述情况失败,您可以查看checkSelfPermission()
来电。 实际上,在执行任何关键操作之前检查权限也是一种很好的做法
返回应用 - >它崩溃了
从未发生在我身上。或者可能是我没有尝试;-)必须以某种方式杀死依赖进程,以便您可以检查下次调用代码的时间。 如果您使用activity
或fragment
,则应选择onResume()
,您可以使用checkSelfPermission()
查看权限。
答案 1 :(得分:0)
您应检查是否已授予许可,并根据您的要求进行处理:
@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;
}
}