android - 在运行时更改融合位置优先级

标签 android google-play android-fusedlocation

我有两个意向服务: 1. 使用 Fused Location API 在后台接收位置更新。 2. 使用 Activity Recognition API 在后台接收 Activity Recognition。

每当我检测到用户站着不动时,我希望能够将融合位置的优先级从 PRIORITY_HIGH_ACCURACY 更改为 PRIORITY_BALANCED_POWER_ACCURACY。

我听说过 removeLocationUpdates() 然后调用 requestLocationUpdates() 但我不能使用它,因为我只在后台运行没有 Activity 的 Intent 服务。

任何帮助都会有所帮助。

最佳答案

您的应用可以同时在多个位置连接到 GoogleApiClient。使用 blockingConnect() 连接到 GoogleApiClient 会容易得多在您的 Activity 识别中 IntentService 这样您就可以调用 requestLocationUpdates()需要时直接使用。

注意 requestLocationUpdates() Javadoc 的注释:

Any previously registered requests that have the same PendingIntent (as defined by equals(Object)) will be replaced by this request.

因此不需要调用 removeLocationUpdates()

关于android - 在运行时更改融合位置优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992684/

相关文章:

android - 打开应用程序时如何获取键盘高度

android - 在 Delphi 10.3 Rio 中写入外部 SD 卡

java - 为 Google Play 以外的应用显示 Admob 广告

google-play - 在未经允许的情况下请求访问所有文件访问权限的应用将从 Google Play 中删除,您将无法发布

android - 如果没有更新 Google Play 服务,如何处理 Google API 客户端

android - 在 Android 中手动设置上下文

Android 注释 - 生成类的方法初始化时出现空指针异常

android - 使用 "The Item You Requested is Not Available for Purchase"错误测试 Google Play 计费

java - Android 服务不更新位置

android - FusedLocationProvider 有时会给出错误的位置