有没有办法在设备当前位置周围定义地理围栏(中心和半径),并在设备退出地理围栏时让系统在我的应用程序中触发回调函数?
我想避免大量使用 GPS,因此我更喜欢系统消息而不是定期 GPS 轮询,即使以降低准确性为代价。
有没有办法在设备当前位置周围定义地理围栏(中心和半径),并在设备退出地理围栏时让系统在我的应用程序中触发回调函数?
我想避免大量使用 GPS,因此我更喜欢系统消息而不是定期 GPS 轮询,即使以降低准确性为代价。
使用. Geofence
_ 在这里您可以找到使用它的文档。您一次最多可以有 100 个地理围栏。Google Play Services
我发现 GeoFencing API 永远不会智能地从 GPS 硬件中检索位置。GeoFence API 将观察操作系统提供的最准确位置,或者如果当前没有可用位置,它将导致从 Wifi / Cellular 计算位置。(这很糟糕,因为蜂窝网络非常不准确,而且 wifi 经常不可用)
因此,要从地理围栏 API 中获得所有响应或准确的结果,您必须设置地理围栏,然后每隔一段时间轮询 GPS 硬件,甚至不对收到的结果做任何事情,以便在表面下提供有价值的数据到操作系统。
我无法具体说明 LocationManager.addProximityAlert 的行为,但我怀疑它的行为有什么不同。
LocationManager.addProximityAlert
. 它在内部同时使用 GPS 和网络,大概只有在关闭时才打开 GPS。做你想要的。