问题标签 [location-client]

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 回答
1370 浏览

android - LocationClient 的问题

我正在开发一个基于位置的应用程序,我在其中编写了一个使用 LocationClient 请求频繁位置更新的服务。当我的数据包打开时,应用程序显示正确的当前位置,但一旦我切换到 WiFi,应用程序显示错误的位置(更准确地说是我的旧位置之一)。

我在去办公室时打开了数据包(无 WiFi)的应用程序。在我到达办公室之前,它显示了我的正确位置。到达办公室后,我切换到WiFi。当我切换到 WiFi 时,它开始将我的家显示为我当前的位置,尽管我在办公室。再次切换到数据包显示了我的正确位置。

有没有人遇到过与 LocationClient 类似的问题?自过去两天以来,我一直在努力解决这个问题,但找不到任何解决方案或原因导致 LocationClient 的这种奇怪行为。任何帮助将不胜感激。

编辑 我的位置服务

}

0 投票
2 回答
7525 浏览

android - 设备重新启动后,地理围栏是否在 android 中保持活动状态

我正在编写一个应用程序,当有人在安装应用程序的整个生命周期内进入/退出多个站点时,它需要使用地理围栏。

当我第一次安装应用程序时,我的地理围栏实现(非常类似于下面的第二个链接)一切正常,无论是在移入/移出地理围栏时,还是在使用模拟位置来模拟它时,直到设备重新启动。

在重新启动时,模拟位置和实际进出地理围栏似乎都不会触发事件并将未决意图触发到我的广播接收器。

我查看了以下三个链接,并且还阅读了相当多的文档,但我无法在任何地方找到明确的答案,直接说注册的地理围栏在重新启动后仍然存在或不存在。

这些是我在堆栈溢出中查看的链接: Android 地理围栏是否能在重启后幸存下来?

Android Geofence 最终停止获取转换意图

Android 地理围栏是否保持活动状态直到删除/过期或仅在我的 PendingIntent 启动之前

如果有人碰巧知道他们是否会在重新启动后坚持下去,或者如果他们没有解决,那将不胜感激!我目前的最后一个希望是为 BOOT_COMPLETED 创建一个侦听器并在启动时重新注册它们,但我更愿意只在绝对必要的情况下这样做。

提前非常感谢!

编辑:虽然我还没有找到明确的(书面)答案,但我很确定 TonyC 先生发布的内容是正确的,并选择了该解决方案。非常感谢托尼C!

如果有人想查看我的解决方案,我会在设备启动时监听启动完成操作,然后重新注册我需要的所有地理围栏。

这是在清单中:

然后为其创建一个广播接收器,它将在启动时重新注册地理围栏:

还值得注意的是,如果您在启动时处于地理围栏内,这通常会在地理围栏注册后触发地理围栏的未决意图。

因此,例如,如果地理围栏启动了一个应用程序,那么当您启动恰好位于地理围栏中的设备时,一旦启动完成广播接收器注册了地理围栏,它也会打开该应用程序,并且位置服务已经确定了您的位置是。

希望这对某人有所帮助。

0 投票
1 回答
202 浏览

android - googleplayservices Locationclient 在离线模式下工作

我在离线模式下使用位置客户端。

该应用程序应该每 10 秒获取一次位置。如果 wifi 或移动数据已打开,它会使用移动数据获取位置吗?我不希望用户仅仅因为使用移动数据获取位置而每 10 秒付费一次。

如果 GPS 移动数据也打开了,那么应用程序将从哪种方法获取位置?

我的目标是每 10 秒使用位置客户端获取位置,而不需要用户付费。

编辑:谁能告诉我谷歌播放服务位置客户端在移动数据开启时是否使用互联网?

任何洞察知识都是可观的

谢谢

0 投票
0 回答
369 浏览

android - LocationClient 精度不正确

我在我的应用程序中实现了新的 LocationClient,但在进行测试运行时我注意到读数不正确。

我在没有 GPS 的情况下在外面开车。WLAN 开启。因此,定位精度只能是过去的 NETWORK。

我将 LocationClient 设置为LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY;并将更新间隔设置为 15 秒。

当我得到数据时,我用getAccuracy()和评估位置getTime()。这两个值都不可信。

我得到的精度为 25 到 50m,有时可达 100 米,这是 WIFI 位置的典型精度。但是,一旦我离开家,报告的位置(getAccuray() < 100)与我当前的位置没有太大关系(实际精度> 800m)。它最像手机信号塔的位置。在我旅行的那一小时内,位置从未更新过,因此总是指向同一个手机信号塔(顺便说一句,虽然我旅行了大约 3 公里,但我一直在那个地区)。

进行进一步测试后,我注意到在我关闭 wifi 后至少一分钟内位置和准确性没有改变。我正在走路,所以应该触发加速器。同样,位置与我所在的位置相去甚远,但准确度仍报告为 < 30m。大约 1-2 分钟后,然后以 >800 m 的准确度报告该位置,这是正确的。

我可以忍受很差的准确性,但我需要知道这一点。

当实际读数较旧时,时间也始终更新为最新时间。这似乎也是一个错误,有人已经为此在谷歌提出了问题。

总结这意味着我不能使用该功能。我将旧读数报告为当前读数和与读数不匹配的准确性。

测试在 Nexus 4 上完成的位置。电话已连接到 UMTS (3G) 单元。

这些是已知问题吗?有没有办法解决它(获得正确的准确性),还是我必须使用“旧” LocationManager

0 投票
1 回答
386 浏览

android - 位置客户端返回的位置没有返回速度

在我的 android 应用程序中,我使用位置管理器来获取位置。它在android 4.0以下运行良好。但在更高版本的 android 中,我发现很难在此位置管理器 API 中获取网络位置。即未调用网络提供商的位置更改事件。

所以我已经转移到使用播放服务为应用程序提供准确位置的 Location Client,但在这个 API 中,网络位置问题得到了解决。它为我的应用程序提供了一些准确的位置,但它总是将 location.getSpeed() 返回为零

那么有没有办法在使用位置客户端 API 时获得速度值。一些身体帮助我解决这个问题。

0 投票
0 回答
1882 浏览

java - 使用电池塔在离线模式下获取当前位置,电池电量更少且精度高

我按照这个这个链接来获取当前位置。这里没有使用 Wi-fi 和 GPS 获取当前位置,但是当位置改变时它不会更新,如果我在 GPS/Wi-fi 上它开始更新。在这里,我想仅基于具有低电池消耗和高精度的蜂窝塔来获取更新。

这是我的代码

MainActivity.java

LocationUtils.java

LocationServiceErrorMessages.java

0 投票
3 回答
782 浏览

android - 当我的 wi-fi 和移动数据关闭时,是否可以仅从 GPS 获取经纬度的地址?

我正在测试一个应用程序,它借助三星平板电脑中的 GPS 获取纬度和经度。我能够从 GPS 单元捕获当前的纬度、经度。现在我想使用经纬度从这些位置获取地址,而不使用互联网,即 wi-fi、移动数据。

我正在按照以下方式进行操作:

在 mainfest 我做以下条目:

0 投票
0 回答
207 浏览

android - android LocationClient如何设置超时?

我正在开发一个需要获取用户当前位置的应用程序。我用谷歌搜索了很多,似乎 LocationClient 没有设置超时值的选项。如果我禁用了谷歌定位服务并且没有 GPS 信号,它会继续连接。有没有办法设置超时?当连接时间超过一定值时,显示“超时”。

谢谢!

0 投票
1 回答
1046 浏览

android - 多个 LocationClients 干扰?

我正在开发一个由服务和活动组成的应用程序。该服务使用 LocationClient 对象每分钟请求一次当前位置。该活动使用另一个 LocationClient 对象在单击按钮后请求单个当前位置。

在服务中:

在活动中:

仅这项服务就可以按预期工作。

但是,如果服务已启动并且活动尝试获取单个当前位置,那么它会在服务接收到更新的位置之前接收到该位置。所以活动必须等待长达 60 秒。

但是,如果服务未启动并且活动尝试获取单个当前位置,那么它会在预期的短时间内(通常 < 5 秒)后接收位置。

是什么导致了问题?每个应用程序只允许一个 LocationListener 吗?

0 投票
1 回答
1765 浏览

android - Best way to get locations regularly using LocationClient?

I'm using a LocationClient to get the current location every minute:

However I noticed that my LocationListener's onLocationChanged-method is called either every 60 or 120 (or any other multiple of 60) seconds (+/- 3 seconds). The documentation says:

This interval is inexact. You may not receive updates at all (if no location sources are available), or you may receive them slower than requested. [...]

So I know, that the interval is not exact one minute. But I thought that I would get the current location as fast as possible after the 60 seconds are over, for example after 75 seconds. But it seems that if the LocationClient cannot determine the location it simply retries after the next 60 seconds.

Is this assumption correct?

If yes, a workaround would be to set the interval to something lower like 30 seconds or so and filter out the required locations in the onLocationChanged-method. But that would probably consume more battery power.