无法在Android中访问直接位置

时间:2014-05-25 19:36:19

标签: android location locationmanager

伙计这是一个非常重要的问题。我发现很多开发人员遇到同样的问题而我面临同样的问题。我想在我的设备上获得直接位置但看起来非常困难。

我尝试过以下技术,它可以工作但很慢,可能是15分钟后我得到位置,

MIN_TIME_BW_UPDATES = 0;
MIN_DISTANCE_CHANGE_FOR_UPDATES = 0;

    Boolean isGPSEnabled = 
    locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
    if(isGPSEnabled) {
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES,
                                              MIN_DISTANCE_CHANGE_FOR_UPDATES, pendingIntent);
    }
    Boolean isNetworkEnabled = 
    locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
    if(isNetworkEnabled) {
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, pendingIntent);
    }

然后我尝试了这个,它也不起作用。

public String setCriteria() {
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
        return locationManager.getBestProvider(criteria, true);
}

我也对getLastKnownPosition()感到困惑。它总是返回最后记录的位置。当然我不感兴趣。请帮助我如何立即访问地址。

1 个答案:

答案 0 :(得分:0)

我建议您使用LocationClient而不是Locationmanager。融合的位置更简单,更容易理解。请参阅文档here 由LocationManager提供的getlastKnownLocation()可能会向您显示过期或旧的位置值 如果您对可用的最佳位置感兴趣,请使用getLastLocation()返回当前可用的最新位置。它提供具有最佳准确度的位置,同时尊重清单中指定的位置权限。