Android API 级别 23 (Marshmallow) 在其新的运行时权限模型中引入了一组新的方法来处理权限。在 DevicePolicyManager 类(只能由配置文件/设备所有者调用)中,有一个名为 setPermissionGrantState(admin, packageName, permission, grantState) 的方法。此方法非常适用于对应用程序权限执行策略,但我发现当权限被拒绝时,ei, PERMISSION_GRANT_STATE_DENIED 用作grantState 值,并且正在撤销权限的应用程序正在运行,突然崩溃。我做了一些研究并尝试了许多可能的方法来了解正在发生的事情......似乎撤销的权限会杀死应用程序进程(如执行 SIGSTOP),无论是哪个资源。
它不会发生,因为应用程序无法处理没有资源(例如位置)的事实。应用程序崩溃后,如果我再次启动应用程序,则在没有问题资源的情况下可以完美运行;
我试图捕捉实现 UncaughtExceptionHandler 的崩溃,似乎没有抛出异常;
如果使用了 PERMISSION_GRANT_STATE_GRANTED,则应用程序不会崩溃。应用程序 1 ---> (PERMISSION_GRANT_STATE_GRANTED) - 没有崩溃。
我不知道这是否应该像这样工作或者它是否是一个错误?
我正在寻求帮助以规避崩溃,这对我的项目产生了影响。