【问题标题】:requestLocationUpdates for provider and for criteria提供者和标准的 requestLocationUpdates
【发布时间】:2014-04-14 19:43:56
【问题描述】:

请告诉我一件事

这里有两种请求位置更新的变体

Criteria mFineCriteria = new Criteria();
mFineCriteria.setAccuracy(Criteria.ACCURACY_FINE);
mFineCriteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);        
mFineCriteria.setBearingAccuracy(Criteria.ACCURACY_HIGH);
mFineCriteria.setBearingRequired(true);

如果我这样做

String provider = mLocationManager.getBestProvider(mFineCriteria, true);
mLocationManager.requestLocationUpdates(provider, 1000, 1, mLocationListener, null);

然后我的 GPS 启动,一切正常。 但是,如果我只是根据这个标准请求更新,

mLocationManager.requestLocationUpdates(1000, 1, mFineCriteria, mLocationListener, null);

然后我从融合的位置提供者那里得到结果,而 gps 不起作用。

编辑

请说明,如果 requesLocationUpdates 是相同标准的最佳可用提供商,为什么它不使用 GPS

【问题讨论】:

  • 我没看懂问题,你想知道融合位置提供者和旧位置API的区别吗?
  • 那你怎么知道它没有使用 GPS?
  • 1) LocationListener 回调中的每个位置都有一个提供者——我记录了它。 2) 导航栏中的地理定位图标(从 KitKat 开始)
  • 是的,但是融合的位置并没有说明正在使用哪个提供商,所以你怎么知道它没有使用 GPS。如果您只想更新 GPS 位置,则只需设置 GPS。如果您想要所有内容,请使用融合位置 API
  • 好吧,我会重申我的问题。为什么订阅一个标准会导致使用 FUSED,而订阅一个具有相同标准的最佳提供商会导致 GPS?

标签: android location


【解决方案1】:

只是稍微看看同样的问题,this 可能会为你解释它:

public String LocationManager.getBestProvider (Criteria criteria, boolean enabledOnly)

在 API 级别 1 中添加 返回最符合给定条件的提供者的名称。只有被调用活动允许访问的提供者才会被返回。如果多个提供者符合标准,则返回准确度最高的提供者。如果没有提供者符合条件,则按以下顺序放宽条件:

  • 电源
  • 要求
  • 准确度
  • 轴承
  • 速度
  • 海拔

请注意,在此过程中并未取消对货币成本的要求。

【讨论】:

    【解决方案2】:

    我认为您可以获得有关选择了哪个提供商的信息

    String provider = locationManager.getBestProvider(criteria, false);
    Log.i(TAG, "AllProviders = " + locationManager.getAllProviders().toString());
    Log.i(TAG, "Provider [" + provider + "] best criteria.");
    

    监视器:

    AllProviders = [passive, gps, network]
    Provider [gps] best criteria.
    

    另请参阅 https://stackoverflow.com/a/23425606/345810

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多