代码之家  ›  专栏  ›  技术社区  ›  Rupert

我们如何在Android中监听位置权限更改(而不触发权限请求)?

  •  2
  • Rupert  · 技术社区  · 7 年前

    有可能吗?我希望能够创建一个侦听器,该侦听器将收到有关位置权限更改的通知(无论应用程序是否触发这些更改)。据我所见,有一些方法可以获取当前的权限状态和请求权限的方法,但没有任何方法可以简单地让应用程序监听更改。

    例如,在iOS中,我们可以在 CLLocationManager 然后通过 locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) 授权状态的任何变化。是否有人知道Android中的任何同等版本(最好与API>=17兼容)?

    1 回复  |  直到 7 年前
        1
  •  1
  •   CommonsWare    7 年前

    有可能吗?

    不,对不起。

    据我所见,有一些方法可以获取当前的权限状态和请求权限的方法,但没有任何方法可以简单地让应用程序监听更改。

    如果用户授予您权限,您唯一能发现的方法就是 checkSelfPermission() 再一次。

    如果用户撤销了之前授予的权限,如Michael在 a comment ,您的进程已终止,您将通过调用 检查自我权限() 下次运行应用程序时。