我们从应用设置

时间:2017-03-15 11:23:41

标签: android android-permissions user-permissions

我们有一个授予了一些权限的应用。然后,用户撤消设置中的权限 - >应用 - >权限。我在这个时候提到应用程序处于后台。

有时,当上述流程发生时应用程序崩溃。有办法处理这个吗?我们可以知道从应用设置中撤消权限的时间吗?

我没有找到任何与此主题相关的官方文档。

情景:

  1. 打开应用并授予所有权限。
  2. 点击主页按钮(后台应用)。
  3. 从“设置”中手动撤消权限。
  4. 返回应用 - >它崩溃了
  5. 谢谢。

2 个答案:

答案 0 :(得分:1)

当您的runtime permission被撤销时,之前没有记录关于接收事件的事件,因此Broadcast receiver在此处无效。

此外,如果用户撤销了权限,您的流程将被终止,这取决于该关键权限。

如果上述情况失败,您可以查看checkSelfPermission()来电。 实际上,在执行任何关键操作之前检查权限也是一种很好的做法

  

返回应用 - >它崩溃了

从未发生在我身上。或者可能是我没有尝试;-)必须以某种方式杀死依赖进程,以便您可以检查下次调用代码的时间。 如果您使用activityfragment,则应选择onResume(),您可以使用checkSelfPermission() 查看权限。

获得One of the SO link

的参考资料

答案 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;
    }
}