AndroidのチュートリアルやAndroidの公式ドキュメントをチェックすると、場所を問い合わせる方法が複数あるようです。どのような方法が正しいかわからないとき、またはドキュメントが古くなっているかどうかわからないので、私は混乱しています。例えば最後の場所を取得する方法はたくさんあります
、
1)GoogleApiClient:このように、それは、GoogleのAPIクライアントに
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
を使用していますし、それがこの
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
2)場所のマネージャーのような場所を問い合わせます:この方法では、位置マネージャを使用します。
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider);
3)FusedLocationApi(第二スタイル):私たちは道を使用する必要があります
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mFusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
// Got last known location. In some rare situations, this can be null.
if (location != null) {
// Logic to handle location object
}
}
});
?
LocationManager apporachは古い方法であり、単にfusedLocationが新しいものであるため単に推奨しないと言っています。正しい?両方ともfusedLocationであるため、なぜGoogleApiClientではなくmFusedLocationClientを使用しますか? – Snake
BtwがNullになることはめったにありません。設定からロケーションサービスをオフにするだけで、大半のケース – Snake
mfusedlocationclientは、接続を管理してから接続を無効にするときにgoogleapiclientを使用しているときに直接使用できるfusedlocationproviderを提供する抽象的な方法ですあなたが接続した活動や断片の破壊 –