问题标签 [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 回答
3012 浏览

android - 如何从 IntentService 获取 FusedLocation

  • 如何使用 IntentService 中的新FusedLocation API 检索当前位置?
  • 我如何确保IntentService将接收 来自FusedLocation API的所有回调?即,如何同步获取位置对象?
0 投票
2 回答
41360 浏览

android - ACCESS_COARSE_LOCATION 权限可在 Android 上提供手机信号塔精度

我正在requestLocationUpdates()使用FusedLocationApi. 我正在使用PRIORITY_BALANCED_POWER_ACCURACY。城市街区的精度对我来说很好。

当我请求ACCESS_FINE_LOCATION权限时,我得到了大约 100m 的精度,这非常适合GPS关闭。因为我不需要 GPS 精度,但需要城市街区精度,我只想请求ACCESS_COARSE_LOCATION许可。但是,当我请求ACCESS_COARSE_LOCATION许可时,我得到了 2 公里的精度。似乎该设备不再使用Wifi许可,而仅使用手机信号塔精度。

如何使用ACCESS_COARSE_LOCATION权限获得更好的精度?

注意:GPS在我的测试设备上被禁用。

0 投票
1 回答
635 浏览

android - 融合位置提供者单例示例?

嗨,是否可以创建一个融合的位置提供程序单例,可用于从许多活动中获取最后一个位置?

此外,在连接和断开连接方面,我将如何在这些活动中维护一个 Google Api 客户端实例。

0 投票
2 回答
1782 浏览

android - 如何使用 Fused Location Provider API 跟踪用户是否故意关闭位置

我已经使用 FusedLocation Provider API来获取用户的当前位置。当用户打开位置时,一切正常。

但是如果他关闭了位置,我想向用户提供一条消息。关闭位置时,requestLocationUpdates不调用onLocationChanged方法。可能这是意料之中的,但我想知道关闭位置时会调用什么,以便我可以捕获它以通知用户。下面是我正在使用的代码(选自 Stackoverflow 中的一个示例,我丢失了该链接)。

0 投票
1 回答
779 浏览

android - Android FusedLocationproviderApi requestLocationUpdates未在深度睡眠模式下运行pendingIntent

我正在使用requestLocationUpdates

FusedLocationProviderApi. 屏幕打开时,它正常且频繁地工作。

但是,当设备进入睡眠模式时,它不会调用 PendingIntent。如何在睡眠模式下不断获取更新?

0 投票
1 回答
190 浏览

android - How to update time interval in fused location service depending on application being in foreground/background?

How to have two different location update interval in Fused location when app is in foreground (For example: 5 sec) and when app is in background (For example 5 minute)?

0 投票
1 回答
5570 浏览

android - 谷歌播放服务更新时默认接受“提高位置准确性”弹出窗口 [ROOT]

我有一个应用程序安装在出租车司机的电话中,用于跟踪出租车行驶的位置和距离。(手机已root,我们拥有手机的所有权限)。在我们应用程序的第一个实现中,我们使用 LocationManager.requestLocationUpdates 从 GPS 和网络提供商获取位置更新。由于我们需要捕捉出租车行驶的每一公里,我们在位置设置中启用了“高精度”模式。

出于两个原因,我们愿意迁移到 Fused-location-provider

  1. 出于某种原因(android 中的一个已知错误:https ://code.google.com/p/android/issues/detail?id= 57707)NETWORK_PROVIDER 不提供位置更新。
  2. 由于某种原因,设备突然失去 GPS 定位,并且在设备重新启动之前不会再次获得。

我们观察到 FusedLocationProvider 提供了更好的结果,并计划更改我们的应用程序以使用 FusedLocationProvider。现在的问题是 - 我们的设备有一个旧版本的 GooglePlayServices,它没有 LocationServices。我们有两个选择是

  1. 使用 LocationRequest 和 LocationClient 使用旧版本的 FusedLocationProvider。尽管它在户外提供了良好的结果(这是我们的主要要求),但即使启用了 wifi 并且网络信号良好(这似乎也是一个已知问题(位置更新),我们也没有在室内获得位置更新(根本没有)Fusion Location Provider APIs 声称不能在室内工作)。因此,我怀疑旧版本的 GooglePlayServices 和/或 FusedLocationProvider 中可能存在一些错误,这些错误将在以后的版本中得到修复。

  2. 更新所有手机上的 GooglePlayServices(通过无线安装 apk)并优先使用 LocationServices 获取高精度的位置更新。这种实现甚至在室内也能提供位置更新,这是我们所期望的——这里的问题是,当我在应用程序中请求位置更新时,我用 apk 更新 GooglePlayServices 时,它会打开 2 个弹出窗口,一个要求确认以提高位置准确性,另一个是打开谷歌应用程序使用我的位置的能力。即使我不接受第二个弹出窗口,它也可以正常工作,但如果我不接受第一个弹出窗口,它会将位置设置更改为“仅设备”模式(这意味着仅使用 GPS 提供程序)。

提高定位精度

允许谷歌应用使用位置的权限

我们不能指望我们所有的驱动程序在弹出窗口显示时都接受它。我想知道是否有任何方法可以为第一个弹出窗口执行“默认接受”之类的操作,以便我的设备保持“高精度”模式。

我找到了一种禁用位置同意的解决方案,该解决方案是在位置设置中手动启用高精度模式时出现的。该解决方案适用于我们的旧应用程序,但更新后的 GooglePlayServices 无法正常工作。

任何实现这一点的方法——比如在设备外壳中执行命令、发出意图或修改 GooglePlayServices apk 本身对我来说都很好。

0 投票
1 回答
1268 浏览

android - Android Fused LocationSettingsRequest 从 startResolutionForResult 中删除“从不”选项

a据此:

https://developers.google.com/android/reference/com/google/android/gms/location/SettingsApi

您可以检查是否满足位置要求,如果不满足则显示对话框,使用startResolutionForResult().

在该对话框中,您可以选择“ok”、“not this time”或“never”。

是否可以禁用“从不”选项?

谷歌地图官方应用已禁用该选项。

0 投票
1 回答
333 浏览

android - Android - 融合位置 API

当 google api 客户端连接时融合 Location Api //

但假设由于没有网络、没有 wifi 和没有 gps,客户端一直在检查位置。

那么有什么方法可以终止它...如果 onlocationchanged 在 1 分钟或这样的时间间隔内没有被调用?

0 投票
1 回答
2385 浏览

android - 向 requestLocationUpdates intentService 发送额外信息会中断位置更新

我无法将PendingIntent我传递给的字符串额外发送给LocationServices.FusedLocationApi.requestLocationUpdates(GoogleApiClient client, LocationRequest request, PendingIntent callbackIntent).

看来,我添加的额外用户名Intent正在破坏requestLocationUpdates试图移交给我的位置IntentService作为intent.getParcelableExtra(FusedLocationProviderApi.KEY_LOCATION_CHANGED)回报null

编辑

我尝试制作一个User实现Parcelable并将其作为额外的类:

而且我还尝试按照此错误报告https://code.google.com/p/android/issues/detail?id=81812Parcelable User中的评论建议将内部放入:Bundle

在我的服务中:

然而,这些方法都没有任何区别。每当我在意图中添加任何额外内容时,更新发生时该位置永远不会添加到意图中。

我设置它IntentService来处理位置更新:

当用户点击一个按钮时,startLocationUpdates在我的主要活动中被调用:

主要活动类:

这一切都很好。当用户按下按钮时,toggleLocationUpdates被调用,它调用LocationServices.FusedLocationApi.requestLocationUpdateswhich call my LocationUpdateServicewhere I can get the location。

当我尝试在我的Intent使用 Intent.putExtra(String, String) 上添加一个额外的字符串时,问题就来了:

主要活动类:

编辑 我将下一句作为陈述而不是问题开始:“我正在使用......”

我是否使用正确的方法向此位置更新处理发送一些额外的数据,IntentService或者是否有更明智的方法来解决这个问题?

这是一个错误还是只是糟糕的文档?