0

LocationManagerには、たとえば、デバイスがGPS信号を失った場合に、GPSからより多くのコースプロバイダーに変更する機能がありますか?

私の知る限りではありませんが、100%確信が持てないので、質問する必要があります

(私が尋ねる理由は、この種の問題を処理する独自のLocationManagerManagerを作成したいからです。従来のLocationManagerが柔軟ではないさまざまな状況下で、ある種の順序で試行される複数のCriteriaオブジェクトを受け入れるようにすることができます。しかし、私は車輪の再発明をしたくありません。たとえば、Googleがこれを私が知らないメソッド/クラスで処理した場合などです)。

ありがとう

4

2 に答える 2

1

私が知っていることではありません:あなたのオプションはおそらく最良のアイデアです。利用可能なすべてのプロバイダーに登録してから、利用可能な最良のロケーション値を返します。

于 2011-05-12T23:10:19.477 に答える
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;  
}  

`

于 2011-05-12T23:50:00.437 に答える