0
Android 튜토리얼 및/또는 Android 공식 문서를 확인할 때 위치를 쿼리하는 데 여러 가지 다른 방법이있는 것 같습니다. 어떤 방법으로 올바른지 확실하지 않거나 설명서가 오래 되었다면 혼란 스럽습니다. 예를 들어 마지막 위치 얻기, 다양한 방법
,1) GoogleApiClient :이 방식으로, 구글 API 클라이언트
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
를 사용하고 다음이
LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
2) 위치 Manager와 같은 위치를 조회 :이 방법은 위치 관리자를 사용합니다.
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
Location lastKnownLocation = locationManager.getLastKnownLocation(locationProvider);
3) FusedLocationApi (2 스타일) :
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를 사용하는 동안 직접 사용할 수있는 융통성있는 위치 제공기를 제공하는 추상적 인 방법입니다. 연결 한 활동 또는 조각 파기 –