问题标签 [fusedlocationproviderapi]

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

android - Android FusedLocationAPI GPS 精度似乎不正确

我正在编写一个简单的 Android 应用程序来捕获用户的位置。

我正在使用 FusedLocationAPI 来提供位置。

当用户按下按钮时,应用程序将首先检查最后一个已知位置。如果这不到一分钟并且精度小于 50m,则使用该位置。如果没有,应用程序会请求位置更新,直到接收到精度小于 50m 的位置。然后该应用程序停止请求更新,以帮助节省电池电量。

这在 99% 的情况下都非常有效。然而,在测试中,出现了一种情况,即对同一位置进行了两次读数,但报告的坐标之间的距离为 110m。我试图理解为什么。

读数 #1:在 10:46 拍摄,精度为 36m。

读数 #2:在 13:27 拍摄,精度为 26m。

用户在同一位置(约 2m 内)。我会假设,由于它们的位置处于精度边缘,点之间的距离最多只能为 52m。不知道为什么是110m

我错过了一些明显的东西吗?

0 投票
1 回答
337 浏览

android - Android Location API 未正确跟踪用户

我有一个后台服务,它应该跟踪用户的汽车移动,并将数据发送到我的服务器。我有两个用于发送位置的变量,要么已经过去了 60 秒,要么用户已经移动了 100 米。

在我的服务中,这是我开始收听位置的方式:

和听众:

因此,当服务正在运行并且我开着车四处行驶时,onLocationChanged 只会触发几次,它没有考虑触发位置读取的时间或米数。我有数据连接,并且在服务运行的整个过程中,通知栏上都可以看到 GPS 图标。

任何想法为什么不工作?

0 投票
0 回答
546 浏览

java - 删除位置更新问题。位置类与使用位置分开,无法删除位置更新(FusedLocationAPI)

我有这个类用于使用 GooglePlayServices(FusedLocationAPI) 获取位置:

GetLocation.class:

我在 2 个不同的活动中使用它,例如:

问题是我想在活动暂停或销毁时取消位置更新,但是当我打电话时:

从另一个类,它给了 NullPointer 并且它崩溃了。

如果从另一个类调用 GetLocation,有没有办法取消位置更新?

干杯!

0 投票
3 回答
8514 浏览

java - 除非打开 GPS,否则 Fused Location Provider 无法获取位置

所以我实现了新的 Fused Location Provider API 来获取用户的位置,但由于某种原因,除非 GPS 开启,否则我无法获取任何位置。并非总是如此,用户会打开他们的 GPS,我不想让他们每次加载应用程序时都打开他们的 GPS。 我如何告诉 API 给我一个可用的提供者的位置?

这是我的代码:

0 投票
13 回答
260084 浏览

android - 在Android后台获取用户GPS位置的最佳方法

在我的 android 应用程序中,我想每隔几分钟获取用户当前位置,并使用 Web 服务更新到我的中心服务器。目前我正在使用 Fused Location Provide 获取用户当前位置,请参阅链接

现在我想知道经常获取用户位置并调用网络服务的最佳方法是什么。

下面是我的代码,它给了我用户当前的位置: -

现在我必须从那里调用此代码。我可以在后台服务或其他地方使用它吗?

请提供您的想法。

TIA。

0 投票
1 回答
615 浏览

android - Fused Location Provider 应用程序崩溃和 Logcat 理解

我制作了一个小模块来使用融合位置提供程序获取当前位置坐标。

我的MainActivity.java文件看起来像这样

当我尝试在我的手机上运行该应用程序时,它会出现以下错误: 不幸的是,Module01 已停止。 Logcat看起来像这样

            

我该如何解决这个问题?

0 投票
1 回答
63 浏览

android - 如果我将fastestInterval 设置得太低,我会在 FusedLocationProvider 中丢失请求的位置更新吗?

我没有找到太多关于此的文档,而且测试起来似乎并不容易或直接。我正在构建一个LocationRequest用于FusedLocationProvider. 为方便起见,这里是文档的链接:

http://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html

priority的设置为PRIORITY_HIGH_ACCURACY. 我了解这fastestInterval允许我的应用接收其他应用请求的位置更新。对于我们的使用,我们需要以牺牲电池寿命为代价的准确位置。

如果另一个应用程序以较低优先级但更快的间隔请求位置,是否有可能因为我fastestInterval已经遇到更频繁的低优先级位置更新而丢失位置更新?

0 投票
6 回答
38851 浏览

android - Android 无法解析方法 requestLocationUpdates FusedLocationProviderAPI

我正在尝试遵循 Android接收位置更新教程。示例代码在 Github 上

除了这条线,一切都在工作: LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);

它抛出一个cannot resolve method requestLocationUpdates错误。我在文档中看不到任何内容,但我对 Android 还是很陌生,所以可能会遗漏一些东西 :)。

这是完整的代码。有什么想法我哪里出错了吗?谢谢!

0 投票
0 回答
555 浏览

android - 将非阻塞 android FusedProvider API 转换为阻塞

我正在尝试使用非阻塞 FusedLocationProvider API 作为阻塞 API。这是我正在做的(大致):

  1. 启动异步任务
  2. 在后台线程中,连接到 PlayServices/FusedProvider API。有一个可用的超时阻塞方法。
  3. 使用上述 API,请求位置更新。API 将使用设备计算位置并触发在调用者线程上执行的回调。
  4. 等待回调使用countDownLatch.await(timeOut,timeUnit)
  5. 当 Fused API 触发回调时,检索位置并执行 a countDownLatch.countdown(),这将释放闩锁。
  6. 返回位置。

我需要一种阻止方法,因为我可能需要在任何时间计算位置并使用它。上述方法有效,但我正在寻找更好的方法,因为 CountDownLatch 是从它阻塞的同一线程触发的。我不知道我这样做是否是在亵渎神灵/纯粹的愚蠢。

这是我的代码:

在这种情况下,除了锁定无限循环和标志之外,还有什么策略可以阻止吗?谢谢。

0 投票
2 回答
2398 浏览

android - 使用 Fused Location Provider 获取启用/禁用位置服务的信息

我正在开发一个使用谷歌地图并跟踪用户位置的应用程序。我想改变“你在这里!”的可见性。当用户手动关闭定位服务或服务进入无法访问状态时标记。该方法可以返回位置服务是否启用的信息:

但是,我不想一次检测定位服务的状态。每当用户打开或关闭位置服务时,我都应该检测到它并更改标记的可见性。简而言之,这个草率的伪代码解释了我想听的内容:

我没有找到没有 android.location.LocationListener 的方法来实现这个任务,只想使用 Fused Location Provider 来实现它。你有什么主意吗?如果您想查看,这是我使用的核心结构:

http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ (查看“完整代码”的标题)