问题标签 [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.
android - Android FusedLocationAPI GPS 精度似乎不正确
我正在编写一个简单的 Android 应用程序来捕获用户的位置。
我正在使用 FusedLocationAPI 来提供位置。
当用户按下按钮时,应用程序将首先检查最后一个已知位置。如果这不到一分钟并且精度小于 50m,则使用该位置。如果没有,应用程序会请求位置更新,直到接收到精度小于 50m 的位置。然后该应用程序停止请求更新,以帮助节省电池电量。
这在 99% 的情况下都非常有效。然而,在测试中,出现了一种情况,即对同一位置进行了两次读数,但报告的坐标之间的距离为 110m。我试图理解为什么。
读数 #1:在 10:46 拍摄,精度为 36m。
读数 #2:在 13:27 拍摄,精度为 26m。
用户在同一位置(约 2m 内)。我会假设,由于它们的位置处于精度边缘,点之间的距离最多只能为 52m。不知道为什么是110m
我错过了一些明显的东西吗?
android - Android Location API 未正确跟踪用户
我有一个后台服务,它应该跟踪用户的汽车移动,并将数据发送到我的服务器。我有两个用于发送位置的变量,要么已经过去了 60 秒,要么用户已经移动了 100 米。
在我的服务中,这是我开始收听位置的方式:
和听众:
因此,当服务正在运行并且我开着车四处行驶时,onLocationChanged 只会触发几次,它没有考虑触发位置读取的时间或米数。我有数据连接,并且在服务运行的整个过程中,通知栏上都可以看到 GPS 图标。
任何想法为什么不工作?
java - 删除位置更新问题。位置类与使用位置分开,无法删除位置更新(FusedLocationAPI)
我有这个类用于使用 GooglePlayServices(FusedLocationAPI) 获取位置:
GetLocation.class:
我在 2 个不同的活动中使用它,例如:
问题是我想在活动暂停或销毁时取消位置更新,但是当我打电话时:
从另一个类,它给了 NullPointer 并且它崩溃了。
如果从另一个类调用 GetLocation,有没有办法取消位置更新?
干杯!
java - 除非打开 GPS,否则 Fused Location Provider 无法获取位置
所以我实现了新的 Fused Location Provider API 来获取用户的位置,但由于某种原因,除非 GPS 开启,否则我无法获取任何位置。并非总是如此,用户会打开他们的 GPS,我不想让他们每次加载应用程序时都打开他们的 GPS。 我如何告诉 API 给我一个可用的提供者的位置?
这是我的代码:
android - 在Android后台获取用户GPS位置的最佳方法
在我的 android 应用程序中,我想每隔几分钟获取用户当前位置,并使用 Web 服务更新到我的中心服务器。目前我正在使用 Fused Location Provide 获取用户当前位置,请参阅链接
现在我想知道经常获取用户位置并调用网络服务的最佳方法是什么。
下面是我的代码,它给了我用户当前的位置: -
现在我必须从那里调用此代码。我可以在后台服务或其他地方使用它吗?
请提供您的想法。
TIA。
android - Fused Location Provider 应用程序崩溃和 Logcat 理解
我制作了一个小模块来使用融合位置提供程序获取当前位置坐标。
我的MainActivity.java文件看起来像这样
当我尝试在我的手机上运行该应用程序时,它会出现以下错误: 不幸的是,Module01 已停止。 Logcat看起来像这样
我该如何解决这个问题?
android - 如果我将fastestInterval 设置得太低,我会在 FusedLocationProvider 中丢失请求的位置更新吗?
我没有找到太多关于此的文档,而且测试起来似乎并不容易或直接。我正在构建一个LocationRequest
用于FusedLocationProvider
. 为方便起见,这里是文档的链接:
http://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html
我priority
的设置为PRIORITY_HIGH_ACCURACY
. 我了解这fastestInterval
允许我的应用接收其他应用请求的位置更新。对于我们的使用,我们需要以牺牲电池寿命为代价的准确位置。
如果另一个应用程序以较低优先级但更快的间隔请求位置,是否有可能因为我fastestInterval
已经遇到更频繁的低优先级位置更新而丢失位置更新?
android - Android 无法解析方法 requestLocationUpdates FusedLocationProviderAPI
我正在尝试遵循 Android接收位置更新教程。示例代码在 Github 上。
除了这条线,一切都在工作:
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
它抛出一个cannot resolve method requestLocationUpdates
错误。我在文档中看不到任何内容,但我对 Android 还是很陌生,所以可能会遗漏一些东西 :)。
这是完整的代码。有什么想法我哪里出错了吗?谢谢!
android - 将非阻塞 android FusedProvider API 转换为阻塞
我正在尝试使用非阻塞 FusedLocationProvider API 作为阻塞 API。这是我正在做的(大致):
- 启动异步任务
- 在后台线程中,连接到 PlayServices/FusedProvider API。有一个可用的超时阻塞方法。
- 使用上述 API,请求位置更新。API 将使用设备计算位置并触发在调用者线程上执行的回调。
- 等待回调使用
countDownLatch.await(timeOut,timeUnit)
- 当 Fused API 触发回调时,检索位置并执行 a
countDownLatch.countdown()
,这将释放闩锁。 - 返回位置。
我需要一种阻止方法,因为我可能需要在任何时间计算位置并使用它。上述方法有效,但我正在寻找更好的方法,因为 CountDownLatch 是从它阻塞的同一线程触发的。我不知道我这样做是否是在亵渎神灵/纯粹的愚蠢。
这是我的代码:
在这种情况下,除了锁定无限循环和标志之外,还有什么策略可以阻止吗?谢谢。
android - 使用 Fused Location Provider 获取启用/禁用位置服务的信息
我正在开发一个使用谷歌地图并跟踪用户位置的应用程序。我想改变“你在这里!”的可见性。当用户手动关闭定位服务或服务进入无法访问状态时标记。该方法可以返回位置服务是否启用的信息:
但是,我不想一次检测定位服务的状态。每当用户打开或关闭位置服务时,我都应该检测到它并更改标记的可见性。简而言之,这个草率的伪代码解释了我想听的内容:
我没有找到没有 android.location.LocationListener 的方法来实现这个任务,只想使用 Fused Location Provider 来实现它。你有什么主意吗?如果您想查看,这是我使用的核心结构:
http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ (查看“完整代码”的标题)