1

gps とネットワーク プロバイダーの更新を要求するために同じ locationManager を使用できますか、それとも 2 つの locationManagers を作成し、onLocation で変更された関数などを個別に作成する必要がありますか。これについて本当に混乱しました

4

1 に答える 1

1

使用する順序でどれが利用可能かを確認して確認し、対応するものを使用する必要があります。

if(mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, LOCATION_UPDATE_MIN_TIME, LOCATION_UPDATE_MIN_DISTANCE, locationListener);
}
else if(mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
    mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_UPDATE_MIN_TIME, LOCATION_UPDATE_MIN_DISTANCE, locationListener);
}

Locationすべてのリスナーのメソッドは、ソースに依存しないオブジェクトをパラメーターとして受け取るため、同じリスナーを使用できます。

@Override
public void onLocationChanged(Location location) {
    // updateLocation();
}
于 2011-08-03T00:58:11.367 に答える