当我们从应用程序设置禁用(撤销)它们时,处理许可



我们有一个应用程序,并获得了一些权限。然后,用户将撤销设置 -> App->权限的权限。我提到该应用程序在这段时间内。

有时,当上述流动发生时,应用程序会崩溃。有什么方法可以处理吗?我们可以知道何时从应用程序设置撤销许可?

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

场景:

  1. 打开应用程序并提供所有权限。
  2. 单击"主页"按钮(在后台应用程序)。
  3. 手动撤销设置的权限。
  4. 返回到应用程序 ->它崩溃

谢谢。

当您以前由用户授予的runtime permission撤销时,没有记录有关接收事件的事情,,因此Broadcast receiver在这里无济于事。>

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

如果上述情况失败,则可以使用checkSelfPermission()调用。实际上在执行任何关键操作之前检查权限是一个好习惯

返回应用程序 ->它崩溃

从来没有发生过。也许我没有尝试过;-)必须以某种方式杀死依赖过程,以便您可以在下次调用何时调用代码。如果您正在使用activityfragment,则应使用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;
    }
}

最新更新