我做的应用程序与地理围栏的使用,因为我开始使用它,我得到了broadcastReceiver的过渡,当我关闭GPS位置,我得到了一个警报代码GEOFENCE_NOT_AVAILABLE,我开始了一个服务,重新注册的地理围栏时,我会打开GPS.现在我休息了几天,突然我的broadcastReceiver没有得到警报,当我关闭GPS.我不明白为什么?*当我进入/退出位置(如我在地理围栏init中定义的)时,我触发警报,问题仅在于触发GEOFENCE_NOT_AVAILABLE警报。
如果有人能帮助我,我会很高兴
3条答案
按热度按时间vs3odd8k1#
对于在Android 11(API 30,即使在构建中针对API 29或更低版本)上运行应用时遇到此问题的任何人,确认这是预期行为,因为当位置服务关闭时,Android操作系统不再取消注册地理围栏。
但是,当位置服务关闭时,您仍然无法注册地理围栏,因此必须检查其可用性,并在需要注册新地理围栏时提示用户打开地理围栏。以前注册的地理围栏不需要重新注册。
目前还没有相关信息说明这一变化是如何在运行Android 10或更早版本的设备上发生的,一些开发者也报道了这一点。但似乎可以肯定的是,这一变化是在更早的时候引入的,至少在某些版本的Android操作系统中是这样(取决于设备制造商)。如果最初的问题提到这个问题是否只是在一些API上,那将非常有帮助,但我想,由于它的年龄,这不是关于Android 11。如果任何人谁遇到了这个问题,在较低的API可以测试,如果他们的旧地理围栏仍然注册和可用,我很乐意更新相应的答案。
来源:https://issuetracker.google.com/issues/143967408
**更新:**正如Stephen Ruda所提到的,它似乎不依赖于Android OS版本,而是依赖于Google Play Services版本。这使得这种行为完全不可预测。
mdfafbf12#
我们得到GEOFENCE_NOT_AVAILABLE错误时,精确的位置权限未授予应用程序.检查是否启用以下选项,这里我指的是android 13操作系统:
1.设置-〉应用程序-〉YourApp-〉权限-〉位置-〉使用精确位置(打开此选项)
1.设置-〉位置-〉位置服务-〉Google位置准确性(打开此选项)
这应解决GEOFENCE_NOT_AVAILABLE错误
68bkxrlz3#
GEOFENCE_NOT_AVAILABLE是一个预期错误代码,用于通知您位置适配器已关闭,将不再跟踪位置(和地理围栏)。
一旦再次可用,您的地理围栏将处于活动状态,您将获得所需的回调。
触发器没有发生的几个原因:
1.检查您在地理围栏请求中设置的到期时间戳是否仍然有效。
1.您的设备是否重新启动?如果是,您需要重新注册围栏。(请参阅文档:仅在需要文档时重新注册地理围栏)
1.您的位置是否在设备设置中设置为高精度模式?
1.当你重新注册你的栅栏时,你应该先取消注册,然后才重新注册。
1.打开谷歌Map,检查它是否显示正确的位置。