我想在我的应用程序中实现一个位置侦听器,即使关闭该应用程序,它也会在后台运行。我发现实现位置监听器的结果很多,但我仍然感到困惑。
我的用例是以所有可能的方式获取位置,无论是GPS,网络提供商还是任何其他方式。该应用需要在后台定期更新位置
我找到了一个类似于以下示例的示例,以获取准确的位置:
LocationManager lm = getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
下面的链接中没有更多示例:
https://zgrepcode.com/examples/android/android/location/locationmanager-implementations
这不能非常准确地工作,侦听器不在后台服务中工作。
这是在后台获取位置的最佳方法吗?我发现的大多数帖子似乎都是过时的,我们是否有更好的方法在较新的API中实现后台位置监听器?
我在StackOverflow上搜索了相同的内容,但没有找到任何相关的帖子,如果有一个帖子回答了相同的问题,请分享链接。或者让我知道实现它的最佳方法是什么。
预先感谢:-)
答案 0 :(得分:0)
应用每小时每小时只能接收几次 位置更新 。 Google对于此信息非常保护。主动GPS也会消耗大量电池,因此,如果手动完成操作,则AGPS可能是更好的选择。
每小时仅向几次后台应用提供位置更新。
如果以下任何一项为 true ,则认为该应用位于前景中:
如果所有这些条件都不成立,则认为该应用程序处于后台。
考虑使用FusedLocationProviderClient
,但这取决于 Google Play服务。这是最好的选择。您可以read more about it here
答案 1 :(得分:0)
我使用Jobscheduler制作了一个应用。 工作正常。 但是,当其他应用程序(例如)导航sw正在使用位置管理器时,就会发生冲突。 我现在正在寻找解决方案。