2011-05-12 46 views
0

LocationManager是否有能力改变,例如,从GPS到更多课程提供商,如果设备失去其GPS信号?LocationManager更改提供商动态

据我知道这不是,但我不是100%肯定,所以我要问

(我之所以问,我很想让我自己LocationManagerManager处理这些种类我可能会接受多个Criteria对象,这些对象在传统的LocationManager不够灵活的各种环境下按某种顺序尝试,但我不想重新发明轮子,例如,如果Google已经处理了这在一些方法/类对我来说是未知的)。

谢谢

回答

0

是的,它已经可用。只要谷歌它,你必须得到它。选中此功能了:

`

public boolean testProviders() { 
    Log.e(LOG_TAG, "testProviders"); 
    String location_context = Context.LOCATION_SERVICE; 
    locationmanager = (LocationManager) getSystemService(location_context); 
    List<String> providers = locationmanager.getProviders(true); 
    for (String provider : providers) {  
     Log.e(LOG_TAG, "registering provider " + provider); 
     listener = new LocationListener() { 
      public void onLocationChanged(Location location) { 
       // keep checking the location - until we have 
       // what we need 
       //if (!checkLoc(location)) { 
       Log.e(LOG_TAG, "onLocationChanged"); 
       locationDetermined = checkLoc(location); 
       //} 
      } 
      public void onProviderDisabled(String provider) { 
      } 
      public void onProviderEnabled(String provider) { 
      } 
      public void onStatusChanged(String provider, int status, 
        Bundle extras) { 
      } 
     }; 
     locationmanager.requestLocationUpdates(provider, 0, 
       0, listener); 
    } 
    Log.e(LOG_TAG, "getting updates"); 
    return true; 
} 

`

1

不是我意识到:你的选择可能是最好的主意。注册所有可用的提供商,然后返回最佳可用位置值。