我在我的应用中使用谷歌地图一次更新位置。关注Google Map文档,我使用setInterval(TIME_UPDATE)来设置更新位置的时间。这里的问题是我设置的时间和从谷歌地图响应位置更新的时间不一样。在我的代码中,我设置时间是1秒(setInterval(1000)),但谷歌地图在5秒后更新我的位置(我在室内)。当我在户外时,谷歌地图正确更新。这是我的代码:
private void makeLocationRequest(long secondUpdateLocation) {
REQUEST = LocationRequest.create().setInterval(1000) // set time to update
.setFastestInterval(1000) // set time to update
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, REQUEST,
this); // LocationListener
}
任何人都可以帮助我?很多:D
答案 0 :(得分:1)
从文档中可以看出,该值不是“必须”,而只是一个不准确的值: https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest.html#setInterval(long)
设置活动位置更新的所需间隔,以毫秒为单位。
位置客户端将主动尝试获取位置更新 你的应用程序在这个时间间隔,所以它直接影响到 您的应用程序使用的电量。明智地选择你的间隔。
此间隔不准确。您可能根本没有收到更新(如果没有) 位置来源可用),或者你可能会收到它们比 请求。您也可能比请求更快地收到它们(如果是其他的话) 应用程序以更快的间隔请求位置)。该 可以控制您将收到更新的最快速率 setFastestInterval(长)。默认情况下,此最快速率是6倍 间隔频率。
仅具有粗略位置许可的应用程序可以拥有它们 间隔默默地扼杀。
允许间隔为0,但不推荐,因为位置 在未来的实施中,更新可能会非常快。
因此,没有保证更新以您要求的速率进行,特别是在室内,GPS不能完全正常工作,因此获取更新速度可能较慢(在某些情况下,在室内甚至无法获得更新)。