【问题标题】:How to get Status of LocationProvider in android如何在android中获取LocationProvider的状态
【发布时间】:2012-04-14 06:24:46
【问题描述】:

我已经编写了以下代码来获得可用的最佳提供商。

private static String provider;

    public static String setCriteria(LocationManager locationManager) {
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
        provider = locationManager.getBestProvider(criteria, true);
        LocationProvider locProvide = locationManager.getProvider(provider);        
        if (provider == null) {
            provider = LocationManager.GPS_PROVIDER;
        }
        return provider;
    }

我正在使用此代码来查找我将用于获取位置的提供程序。现在我要检查的是提供者的状态。我从文档中读到 LocationProvider 有 3 个可用状态、停止服务和 TEMPORARILY_UNAVAILABLE。现在我在请求位置监听器之前我需要检查状态。

如果状态为例如 TEMPORARILY_UNAVAILABLE 或停止服务,则用户将收到相应的消息,否则它将找到该位置。所以我的问题是如何检查状态?

如果有人有任何想法,请帮助我...

【问题讨论】:

    标签: android gps location location-provider


    【解决方案1】:

    您可以尝试在您的 Locationmanager 对象上使用 requestlocationupdates 并实现您的 Locationlistener 对象......就像这样......

       LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    LocationListener ll = new mylocationlistener();
    lm.requestLocationUpdates(provider, 0, 0, ll);
    
        private class mylocationlistener implements LocationListener {
      ....
    
        @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
      switch(status){
       case 0:
       //OutofService
         break;
       case 1:
        //Temporarily unavailable
       break;
       case 2:
      //Available
        break;
    
      }
    }
    

    【讨论】:

    • 我尝试了您提供的代码。我所做的只是祝酒消息,但什么也没有发生。你能告诉我什么时候会触发 onStatusChanged 吗?
    【解决方案2】:

    AFAIK ,对于上述问题,这是 the ultimate solution ..没有什么能超越这个 你可以使用布尔变量isGPSfix来判断isAvailable与否

    尽管您可以尝试like this 进行其他尝试,但这并不能保证在所有情况下都能正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      相关资源
      最近更新 更多