gpt4 book ai didi

java - 有没有更好的方法可以在不编写自己的位置请求服务的情况下准确使用地理围栏?

转载 作者:行者123 更新时间:2023-11-30 04:55:34 29 4
gpt4 key购买 nike

根据Android's documentation on geofences ,地理围栏应该在用户根据请求进入、停留或离开地理围栏时触发。

但是,我自己测试了地理围栏功能,地理围栏只会在应用程序请求用户位置时触发。简单地使用教程代码并将设备移动到地理围栏中将不会触发地理围栏。我必须打开谷歌地图或其他一些会请求用户位置的应用程序,我假设这会通知谷歌播放服务,然后它会触发我的地理围栏。这真的是地理围栏的设计方式吗?证明这就是我从 this answer 中找到的地理围栏的工作方式. (注意:我也在使用广播接收器,就像该链接中接受的答案一样。除非在地理围栏内发出位置请求,否则接收器不会触发。)

我不希望有一个持久的后台服务每 5 分钟询问一次用户的位置,只是为了触发广播接收器。我想过监听系统 Intent ,例如用户打开屏幕、断开 wifi 等,这会触发我会提供的服务,询问用户的位置。但是,地理围栏不应该在我的应用程序或其他应用程序不需要额外更新用户位置的情况下 native 触发吗?

最佳答案

如本回答中所述 https://stackoverflow.com/a/54436709/1505074您需要更改示例代码以使用广播接收器而不是服务。这样 Geofences 基本上可以工作,但有一些警告。您的延迟取决于 API 级别、制造商,当然还有设备状态。通常您会在打开设备时收到栅栏事件。要真正评估围栏事件,您需要有网络日志服务并进行更复杂的分析。

您自己的 Geofence Trigger 的问题是,如果您没有使用会耗尽电池电量的前台服务,您只能在后台每小时获得大约 4 次真实位置更新。否则,如果您在后台,即使有位置更新回调,您也只能获得最后一个位置。

Transistorsoft 已经创建了一个库来处理后台位置跟踪的不同方式,您会在那里找到许多方法,但它是付费的:https://github.com/transistorsoft/background-geolocation-lt

关于java - 有没有更好的方法可以在不编写自己的位置请求服务的情况下准确使用地理围栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59258037/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com