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

android - 如何使用网络在 android 中使用 Fused Location Provider 获取位置?

我一直在尝试使用 andriod 中的 Fused Location Api 获取位置(纬度/经度)。当 wifi 和 gps 都打开时,我的代码工作正常。如果我关闭 gps,那么我不会得到任何位置更新。

我正在使用 BALANCED_POWER_ACCURACY 进行位置请求。我在清单中添加了 Access_FINE_Location 权限,并在我的 build.gradle 文件中使用了播放服务版本 9.2.1。
我正在真实设备上进行测试(三星 SM0G360H API 19 和三星 SM-G361 API 21)。两者都给出相同的结果。
谁能告诉我 Fused Location Api 是如何工作的?
如何在 gps 关闭但网络连接打开时获取位置更新?
我的代码:

}

0 投票
1 回答
195 浏览

android - FusedLocationApi 返回 null

我正在开发一个 android 应用程序,它有一个广播接收器来广播来自某个数量的传入短信。如果消息来自该号码并且采用特定格式,则应用程序会回复用户当前的经度和纬度。

但是当生成回复消息时,位置总是变为空。我使用的是 GoogleApiClient 对象和 FusedLocationApi。

mLastLocation = LocationServices.FusedLocationApi.getLastLocation(googleAPIClient);

总是返回 null 并且我的消息在经度和纬度的位置包含空值。这是当消息进来询问位置时由广播接收器调用的服务。

公共类ReplyWithLocationService 扩展服务实现GoogleApiClient.ConnectionCallbacks、GoogleApiClient.OnConnectionFailedList、LocationListener{

}

0 投票
0 回答
58 浏览

android - 使用 GPS 坐标显示路径

我正在编写一个发射器应用程序,它会定期将 GPS 坐标发送到 Web 服务。这是代码:

最初我以为我只会将它用于传输坐标,但我想改进它并在旅行时显示路径。谁能帮我指出正确的方向。

0 投票
1 回答
189 浏览

android - google fusedlocationapi 可以免费使用吗?

谁能告诉我 fusedlocationapi 是免费使用的,还是像其他谷歌 api 服务一样,它有一些免费请求限制。我用谷歌搜索了很多,但没有提到它,如果有人知道它,请告诉我我从过去 2 天开始搜索这个,但没有找到任何东西。

0 投票
0 回答
75 浏览

android - 使用 fusedLocationApi 在 android 中单击按钮获取 lat 和 long

我正在使用 google fusedLocationapi 来获取经纬度。现在我在这里遇到了一个问题,实际上我只想在我的按钮单击事件中获得 lat 和 long。这就是为什么我认为我不需要请求可以节省用户电池电量的位置更新。现在在 fusedlocationapi 示例中每个使用

我在不使用以上两行代码的情况下运行了我的代码,并使用以下代码获取了我的位置

但它显示相同的纬度和经度,现在谁能告诉我如何在不请求位置更新的情况下使用 fusedlocationapi 获取纬度和经度。

0 投票
1 回答
1383 浏览

android - Android Fused Location 不会提供定期更新

我想每隔几分钟获得一次硬定位,每隔几分钟进行一次软定位,如果用户移动的距离超过某些米。我一直在使用以下代码步行测试逻辑(在驾驶时也尝试使用更大的参数),但它并没有真正返回我定期的位置修复。它会在请求开始时立即返回位置修复,然后有时会在几分钟后返回 1 个位置修复,但随后最多一个小时它不会返回位置修复。

如果我将位移设置为 0,那么我会定期更新位置。知道发生了什么吗?

0 投票
1 回答
203 浏览

android - 使用 fusedlocationapi 获取位置,而无需在时间间隔后请求位置更新

我在android中使用google的fusedlocationapi来获取用户当前的纬度和经度,现在根据我的用例我只想在用户点击按钮时获取用户的当前位置,现在我认为不是一次又一次地请求位置更新在一个时间间隔之间,我可以使用不同的东西,这样我的用户的电池就不会耗尽太多,我也在 SO 和其他社区上搜索了很多帖子,但没有发现任何有用的东西。现在任何人都可以告诉我如何找到适合我的用例的东西。

0 投票
1 回答
764 浏览

android - Android 融合位置 api 在屏幕关闭时无法提供一致的更新

我的应用程序中有一些每秒运行多次的代码。我试图在每个周期中获取我的位置。我正在使用以下内容:

我的应用程序还使用 PARTIAL_WAKE_LOCK 在后台运行。屏幕上的一切似乎都很好。当我关闭屏幕时,我的应用程序仍然正常运行,但我不再持续获得位置更新。看来我获得更新的频率要低得多(通常在两次更新之间有几分钟)。我正在使用以下方法检查位置的时间戳:

我还发现,即使屏幕打开,我也会得到一些奇怪的结果。有时我在更新之间有几毫秒,有时我有几秒钟。这一切都非常令人担忧。有人可以帮助我正确使用 FusedLocationApi还是建议替代方法。我真正想要的只是每秒直接轮询 gps 几次纬度/经度,而不会妨碍谷歌图书馆。

0 投票
1 回答
5860 浏览

android - Android - Fused Location Provider API issues with satellite information (count, signal, etc)

I am working on a project where we are trying to track the position of a device and keep the data for later use. Before I talk about the issue I would like to provide some background.

By searching around StackExchange and Google and everywhere else, I have come to the conclusion that it is virtually impossible to get information about the satellites using the Fused Location API (good job there Google).

The method that most people are using is to actually use a LocationManager along side the Fused location to get the GPS Status. My first question comes here: How can we be 100% sure that the numbers provided by the LocationManager are in sync with what the Fused Location has given us? Does the Fused Location use the Manager internally?

And now the issue. The app is using an "always on" sticky service to pick up the positions no matter what. When there are no satellites everything works as intended. Placing the device to a position where it can see satellites it does not seem to have a lock. Using the debugger the GpsStatus.getSatellites() brings an empty list. Now, without moving the device I start the app Compass (by Catch.com as there are many) that has a GPS type compass scheme. That one locks the satellites, and quite fast, and from that moment on my app also reports the satellites. If the compass is closed then the app gets stuck on the last number the Compass was providing!!! The device I am personally using for testing is a Nexus 7 2013 with its latest official updates (Android 6.0.1).

Here is some code:

This is the part of the code I think might be needed. I am leaving all the filtering code there along with the math to compute Earth's radius given the latitude and the distance between 2 points on the map. Feel free to use that if you need it.

In connection to the fact that the Compass app can actually make the system get satellites while my app cannot. Is there a way to actually force read the location services? Is it possible that the Fused Location actually uses GPS but the Location Manager does not know it?

Finally I would like to mention that the application has been tested in other devices (phones, not tablets) with different versions of Android and seems to be working properly.

Any ideas would be more than welcome. And of course go ahead and ask anything I might have forgotten to mention.

EDIT : My actual questions were hidden in the text so to lay them out:

1) Are the Location data we get from Fused Location and the rest of the GPS data we can, seemingly, only get from the Location Manager in sync or is there the possibility to get a Location but wrong number of locked satellites for the particular point?

2) What could be the reason behind the weird behavior where the application cannot get a lock to satellites but if the lock comes from another application it seems to be used properly by the application? To make this even weirder this happens to a Nexus 7 (Android 6.0.1) but not to other devices tested with different Android versions.

0 投票
1 回答
1358 浏览

android - 如何同步检索当前地理位置?

由于我们的应用程序的工作方式,我需要同步获取用户的当前位置。我们当前的实现使用com.google.android.gms.location.LocationListener来接收位置更新。问题是,我需要在尝试第一次调用之前更新位置服务器端,否则用户会得到错误的数据。

LocationServices.FusedLocationApi.getLastLocation()不适合这个,因为a)它似乎总是返回null(无论出于何种原因)和b)我们已经在服务器端保存了用户最后一个已知位置,因此检索最后一个已知位置并将其发送到服务器是多余的.

伪代码

等待第一个位置更新事件是我想避免的一种可能性,因为我不知道它会在多长时间内触发,并且我可能不得不让我的用户在加载屏幕中停留很长时间,进而失去他们,因为没有人喜欢等待。