广播行动在权限更改在Android M

当应用程序的权限设置从“设置”更改时,应用程序是否收到任何广播或任 我有一个场景,当我们开始某种日志logging时,应用程序启动并具有LOCATION组的权限。 但是,当用户撤销我们的应用程序崩溃之间的权限。 没有find任何方式来停止日志时,用户取消它。 这个日志logging来自第三方库,所以我们不能在它们之间进行任何检查权限检查。

Solutions Collecting From Web of "广播行动在权限更改在Android M"

当应用程序的权限设置从“设置”更改时,应用程序是否收到任何广播或任

这不是logging。

如果用户撤销之前授予您的权限,您的过程将被终止。 当你下一次运行时,你将会发现权限更改是检查权限的一部分。

如果用户授予之前被拒绝的权限,则您的进程不会被终止。 但是,再次调用checkSelfPermission() ,您将发现您有权访问。

这里的教训是:不要caching权限查找结果。 他们似乎是相当便宜的电话,所以只需要调用checkSelfPermission()

如果你的targetSdkVersion小于23, checkSelfPermission()将不起作用,但你应该得到假数据而不是SecurityException 。 在位置修复的情况下,如果用户已经撤销了您的位置访问权限,则不应该获得任何位置信息。

但是,当用户撤销我们的应用程序崩溃之间的权限

我还没有尝试过后台服务正在运行并且用户撤消权限的场景。 它应该终止你的过程,所以当你的服务下次运行的时候,你会发现权限的改变。 如果您发现您的进程没有被终止,那可能是Android中的一个错误。