当应用程序的权限设置从“设置”更改时,应用程序是否会获得任何广播或任何类型的警报?我有一个场景,我们在应用程序启动时启动某种日志记录并获得LOCATION GROUP权限。但是当用户在我们的应用程序崩溃之间撤销此权限时。当用户取消记录时,找不到任何方法来停止记录。此日志记录来自第三方库,因此我们也不能在其间进行任何检查权限检查。
答案 0 :(得分:23)
当应用程序的权限设置从“设置”更改时,应用程序是否会获得任何广播或任何类型的警报?
没有记录。
如果用户撤消之前授予您的权限,您的流程将被终止。当您下次运行时,您将最终了解权限更改,作为检查权限的一部分。
如果用户授予之前被拒绝的权限,则您的进程不已终止。但是,当您致电checkSelfPermission()
时,您会发现自己有权访问。
这里的教训是:不要缓存权限查找结果。它们似乎是相当便宜的电话,所以只需根据需要拨打checkSelfPermission()
。
如果targetSdkVersion
低于23,则checkSelfPermission()
无效,但您应该获取虚假数据而不是SecurityException
。对于位置修复,如果用户撤消了您的位置访问权限,则不应获取任何位置。
但是当用户在我们的应用程序崩溃之间撤销此权限时
我没有尝试过后台服务正在运行且用户撤消权限的情况。 应终止您的流程,因此您可以在下次运行服务时了解权限更改。如果您发现您的流程未被终止,则可能是Android中出现错误的迹象。