Android Fused Location API - 如何在一个应用程序PRIORITY_BALANCED_POWER_ACCURACY
中使用PRIORITY_HIGH_ACCURACY
?
嗨,我正在开发一个需要定期发送位置更新的应用程序。我已将 Fused Location API 与位置未决意图一起使用。(更新间隔 60 秒,最小位移 100m)。我已经注册了一个 locationclient 挂起的意图PRIORITY_BALANCED_POWER_ACCURACY
和意图服务。当位置改变时,IntentService 被调用,这对于少数试驾来说效果很好。但这只是有时有效。当它不起作用时,我希望使用PRIORITY_HIGH_ACCURACY
我注意到,当我使用它时PRIORITY_HIGH_ACCURACY
,它提供了很好的位置,但电池使用率很高。所以我决定同时PRIORITY_HIGH_ACCURACY
使用PRIORITY_BALANCED_POWER_ACCURACY
ActivityRecognition。
最初程序从PRIORITY_BALANCED_POWER_ACCURACY
使用 LocationPendingIntent 开始,当 2 分钟没有更新时,我使用 LocationListener (和 onLocationChanged 方法)实现PRIORITY_BALANCED_POWER_ACCURACY
,如果仍然没有我调用的位置PRIORITY_HIGH_ACCURACY
。
我在这里面临的问题是,一旦切换到PRIORITY_HIGH_ACCURACY
, LocationPendingIntent (注册到PRIORITY_BALANCED_POWER_ACCURACY
)总是PRIORITY_HIGH_ACCURACY
在此之后使用。我通过调用 .removeupdates(locationListener); 在 onLocationChanged 方法结束时删除位置更新;但是 GPS 图标每分钟都会出现。
我曾想过对 onLocationChanged 方法使用静态方法,但我知道这对于 android 应用程序来说不是一个好习惯。同时使用 PendingIntent 和 onLocationChanged 是否存在任何已知问题?你能建议我的问题的解决方案吗?
权限设置为:
uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
对此的任何帮助将不胜感激。
谢谢。