我们可以在<action android:name="android.location.PROVIDERS_CHANGED" />
中声明Manifest
直播到Android Nougat。但由于Implicit Broadcast
在 Android Oreo (少数除外)中不起作用,我们还可以在运行Oreo的设备上检测到它。
一种解决方案是在运行时注册广播,但即使应用程序未运行,我也想检测它。
我检查了JobScheduler
API,但找不到任何触发位置切换。
根据Android文档
应用程序必须重新注册地理围栏,如果仍然需要它们 以下事件,因为系统无法恢复地理围栏 以下情况:
该应用已收到GEOFENCE_NOT_AVAILABLE警报。这通常 在NLP(Android的网络位置提供商)被禁用后发生。
由于在重新启用位置时需要重新注册所有地理围栏,因此即使应用未运行,我也希望检测到这一点。