问题标签 [android-fusedlocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
373 浏览

android - Android 使用两个不同的代码片段获取当前位置 NULL

我被 GPS/网络提供商的位置困住了。我知道这是所有机器人的一个基本问题,但我很长时间以来一直有这个问题。

实际上,我通过单击Option Menu的以下方法获取当前位置并插入数据库。

我多次得到0.00 纬度和经度,有时我得到其他国家(中国、南非等)的位置

我不知道为什么会这样,但是在我找到 Stackoverflow 解决方案之后顺便说一句,自从谷歌搜索 2 天后发现了谷歌的新 API,名为FusedLocationProviderApi

我通过以下一些链接实现了但收到如下错误:

我正在管理两种获取位置的方法:

  1. Google Play 服务可用或不可用,然后使用 FusedLocation API 获取位置。
  2. 否则使用我自己的方式获取位置(因为设备太多)。

我在 My 中获得了以下权限AndroidManifest.xml

然后也得到位置:(这个问题有什么解决方案吗?

提前谢谢你。

0 投票
0 回答
1155 浏览

android - Android Fused Location API 位置不准确

我正在为我的一个应用程序使用 Fused Location API。我已将优先级设置为 LocationRequest.PRIORITY_HIGH_ACCURACY。当我将间隔/最快间隔设置为几毫秒时,我观察到 GPS 一直处于开启状态,并且我得到 Lat Lng 的精度约为 4m 但是当我将间隔设置为大约 10 分钟时,我观察到 GPS 已关闭10 分钟后,在 GPS 指示器还没有稳定之前,我得到了 1 公里精度的位置。谁能解释一下这种行为以及我做错了什么?

0 投票
0 回答
303 浏览

android - 意外行为 - 使用融合位置提供程序进行后台位置捕获

我正在尝试使用融合位置提供程序以PRIORITY_HIGH_ACCURACY每半小时在后台捕获一次位置。为了实现这一点,我将 PendingIntent 与 BroadcastReceiver 一起使用,并请求每三十分钟更新一次位置。开放式问题:-

1. 即使文档说 setInterval(long duration)本质上是不准确的,但我有时几个小时都没有得到位置更新。事实上,它有时似乎已经完全停止获取位置更新。

2. 即使GPS 一直处于开启状态并且处于移动状态,但有时我会将位置设为 NULL,这令人担忧。

以上问题使得后台的位置更新逻辑不太可靠。我可以使用警报管理器每半小时唤醒一次并请求位置更新,但这看起来有点开销,而且这也可能无法保证收到的位置更新不会为 NULL。

有什么想法吗?

0 投票
1 回答
3506 浏览

android - 在 FusedLocationProviderApi 中设置模拟位置

我正在尝试从中获取模拟更新FusedLocationProviderApi,但似乎无法使其正常工作。这是我在 android 仪器测试中的设置方法:

在这一点之后,我希望任何调用来LocationServices.fusedLocationApi.setMockLocation(apiClient, location)设置我的听众会收到的模拟位置。不幸的是,情况并非如此,听众保持沉默。

我设置模拟位置的万无一失(或者我认为)方法如下所示:

方法成功返回,但监听器没有收到任何位置。我在这里真的很茫然。最糟糕的部分是有时测试会通过,但非常随机(以至于多次执行的相同代码会在后续调用中通过并失败)。为了完整起见,我的调试清单具有以下权限:

我在设置中允许模拟位置。

0 投票
0 回答
50 浏览

android - GPS 停止检索最近的更新

我遇到了一些用户的问题,他们的 gps 跟踪应用程序停止更新他们的位置,并不断将旧位置发送到我们的后端。

该实现基于 FusedLocation 教程,并且有效。只是,有几个人,它突然停止工作。

不确定它是否相关,但如果我在最后一次尝试仍在尝试获得位置时尝试获得位置会发生什么(gps 图标仍在闪烁)?

我知道的唯一提示是,当我断开连接并再次连接到 GoogleApiClient 时,gps 再次正常工作。有谁也知道可能导致它的任何事情?

我正在使用播放服务:7.5.0

编辑:每个 gps 请求之间的间隔为 30 秒。

0 投票
1 回答
887 浏览

android - 为 Fused location API 添加 addGpsStatusListener

我已经添加了:

和:

和:

但是融合位置 API 不会调用 onGpsStatusChanged。这可能吗?

0 投票
3 回答
1509 浏览

android - 融合位置提供程序 - 通过位移更新位置不起作用

我有一个 android 应用程序,它将从背景跟踪位置。我正在使用具有以下配置的融合位置 api

仅当设备移动时,我才需要位置更新。有时一切正常。但有时即使设备处于静止状态,我也会收到位置更新。

为什么会出现这个问题?如果我设置位移,我需要设置间隔和最快间隔吗?这个问题与谷歌播放服务版本有关吗?

0 投票
2 回答
1161 浏览

android - Android Fused location api,当我在家时提供错误的位置更新并锁定到我的 WiFi 网络

我制作了一个应用程序,它在 10 秒后获取位置更新,当我在办公室、路上等时它工作得非常好。但是当我在家并连接到我的 WiFi 网络时,我在onLocationChanged(Location location)方法中获得了位置离我家55公里,这是非常不准确的吗?避免此位置更新的任何帮助。

0 投票
2 回答
3589 浏览

java - 如何使用 FusedLocation API 每 5 分钟接收一次位置更新

我目前正在开发一个应用程序,该应用程序必须每五分钟检查一次用户的位置并将坐标发送到服务器。我决定使用 Google Play 服务中的 FusedLocation API 而不是普通的旧 LocationManager API,主要是因为我注意到LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY优先级,它声称提供 100 米精度级别和合理的电池使用,这正是我需要。

就我而言,我有一个 Activity,其继承结构是:

并实现了相关的回调(onConnected、onConnectionFailed、onConnectionSuspended、onLocationChanged)。根据官方文档的建议,我还使用此方法获得了 GoogleApiClient 的实例:

在 onConnected 中,我使用

...并捕获 onLocationChanged() 中的更改。

但是,我很快发现位置更新似乎在一段时间后停止了。也许是因为这个方法与 Activity 生命周期相关,我不确定。无论如何,我试图通过创建一个扩展 IntentService 的内部类并通过 AlarmManager 启动它来解决这个问题。所以在 onConnected 中,我最终这样做了:

LocUpService 类如下所示:

LocationUpdater 是另一个类,它包含静态方法 getLastKnownLocation,它是这样的:

但是惊喜!!当我清楚地将引用传递给静态方法时,我得到“IllegalArgumentException:需要 GoogleApiClient 参数”,我再次猜测这肯定与 GoogleApiClient 实例与 Activity 的生命周期有关,并且将实例传递到意图服务。

所以我在想:我怎样才能在不发疯的情况下每五分钟定期更新一次位置?我是否扩展服务,在该组件上实现所有接口回调,在其中构建 GoogleApiClient 实例并使其在后台运行?我是否有一个 AlarmManager 启动一个服务,该服务每五分钟扩展一次 IntentService 来完成工作,再次在 IntentService 中构造所有相关的回调和 GoogleApiClient?我是否继续做我现在正在做的事情,但将 GoogleApiClient 构建为单例,期望它会有所作为?你会怎么做?

感谢和抱歉这么冗长。

0 投票
0 回答
107 浏览

android - 如何在应用不活动时使用 FusedLocation API 监控位置更新

FusedLocation API 比 LocationManager API 更新,但我不清楚何时使用一个与另一个。即使用户没有运行应用程序,我也想监控位置变化。

我使用 LocationManager找到了这个很好的例子,但这是从 2011 年开始的。这些信息仍然相关吗?

FusedLocation API 示例展示了如何在 Activity 中配置 LocationRequest 以实现连续位置更新。我的问题是,当您的 Activity 未运行时,您将如何使用它来监控位置变化?

我见过其他使用警报管理器的例子,但这基本上是轮询,看起来有点过分,可能会耗尽电池(但也许我错了?)。