我的应用程序有一个标签,可打开Google地图并显示用户周围观光的标记。当我打开标签时,它应显示用户的当前位置。它确实在Android 6.0.1上正确显示它,但是当我在4.2.2或4.4.2上尝试它时,它显示的用户位置与北纬度相差大约30公里(18英里)(纬度很好)。所有手机都打开了位置和Wi-Fi,并连接到同一个Wi-Fi网络。同样在MapReady中我将setMyLocationEnabled设置为true,因此它应该正常工作,但事实并非如此。有什么建议导致这种情况吗?
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mMap.setMyLocationEnabled(true);
答案 0 :(得分:1)
我不认为手机的操作系统版本或代码是个问题。我使用的是三星Duos和其他使用4.4.2及更低版本的手机,但我对该位置没有任何疑问。
当处于高精度模式时,手机可以通过WiFi或移动网络获取数据,这并不总是准确的。
有些情况下,当移动wifi路由器时,位置显示不正确。
当我家里的路由器停止工作时,我也遇到了这个问题,我从办公室借了备用路由器。谷歌地图显示我在家时在办公室!
要解决此问题,您可以尝试通过将手机上的定位模式从高精度更改为仅设备来关闭Wifi和移动网络的位置检索。这将迫使设备仅从GPS卫星获取位置,这将要求电话靠近窗户或开放天空的某个地方。
仅在设备上测试您的应用,如果您仍然面临同样的问题,请告诉我。