【问题标题】:Cannot access immediate location in Android无法在 Android 中访问即时位置
【发布时间】:2014-05-25 19:36:18
【问题描述】:

伙计们,这是一个非常重要的问题。我发现很多开发人员都有同样的问题,我也面临同样的问题。我想在我的设备上立即获得位置,但这看起来真的很困难。

我尝试了以下技术,它可以工作但很慢,可能需要 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() 感到困惑。它总是返回最后记录的位置。我当然不感兴趣。请帮助我如何立即访问地址。

【问题讨论】:

    标签: android location locationmanager


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2018-04-12
      相关资源
      最近更新 更多