在LocationManager中找到错误的位置

时间:2014-01-04 07:45:59

标签: android gps android-location

我的LocationManager中的位置完全错误

    locationService = (LocationManager) getSystemService(LOCATION_SERVICE);

    Log.i(log_tag, "get best provider");
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    provider = locationService.getBestProvider(criteria, true);


    clearLocationCache(provider);

    Location location = locationService.getLastKnownLocation(provider);

一旦我在莫斯科并在我的申请中找到了一个位置,但是当我到达伦敦时,我的设备上有相同的位置。我重新启动Android设备后才能找到正确的位置。

3 个答案:

答案 0 :(得分:0)

原因来自这一行

locationService.getLastKnownLocation(provider);

因为它总是返回最后一个已知位置

答案 1 :(得分:0)

通过GPS或网络获取位置的最佳方式是使用这些权限。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

您是否已获得这些权限?

答案 2 :(得分:0)

LocationManager location = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
location.getLastKnownLocation(LocationManager.GPS_PROVIDER);