안드로이드 지도 화면 만드는 방법에 대해서 예전 글에서 정리했었는데요.
최근에, Google Play services SDK 11버전이 나오면서 API가 많이 바뀌었습니다.
오늘은 새로운 API를 이용해서, 내 위치를 얻어오는 방법을 정리해보겠습니다.
1. 이전 버전API와 달라진 점
예전 API는 GoogleApiClient객체를 만들어서 connection콜백을 붙인다음,
connection이 생성되면 내 위치를 찾는 메소드를 이용했었는데요.
이 때, connection Fail이라든가 suspend에 대해서도 구현을 해줬어야 했습니다.
하지만 이번 11.0.0 release버전 부터는 위와 같은 connection logic을 다 알아서 해준다고 합니다.
더 이상 googleApiClient객체를 생성할 필요도 없고,
OnConnectionFailedListener,ConnectionCallbacks, LocationListener 도 implement할 필요가 없게 되었습니다.
이제는, 나의 위치를 알기 위해서 FusedLocationProviderClient 만 얻어와서,
getLastLocation메소드를 사용하고,
completion listener만 달면 위치를 얻어올 수 있다고 하는군요.
정말 심플해졌네요.
그럼 이제 실제로 구현해 보겠습니다.
2. FusedLocationProviderClient
먼저 play-service의 location라이브러리를 추가하구요.
이전에는 GoogleApiClient를 생성하고 시작했었는데요.
이제는 FusedLocationProvideClient의 객체를 생성해서 시작합니다.
먼저 Manifest에도 위치 관련해서, 정의가 되어있는지 확인하구요.
안드로이드6.0부터 얻어야 하는 동적권한 문제도 처리해야 하는데요.
동적 권한 얻기는는 아래 글의 링크를 참조해 주세요.(이 글에서는 자세한 설명은 제외하겠습니다)
아래와 같이 getLocationPermission메소드를 만들어서 권한을 확인하고, 얻습니다.
권한을 받았다면, onRequestPermissionResult에서 true를 해주고,
위치정보를 얻는 getCurrentLocation메소드를 실행해 줍니다.
getCurrentLocation은 아래에서 구현 하겠습니다.
4. 위치 관련 권한 얻기
위까지 다 구현했다면, 준비가 된 것이구요.
마지막으로 onStart에서 Permission이 있는지 확인하고, getCurrentLocation()메소드를 실행해주기만 하면 되겠습니다.
'Android 개발 > 지도 Api' 카테고리의 다른 글
getLastLocation 으로 유저의 마지막 위치얻어오기 # Android (0) | 2021.04.07 |
---|---|
새로나온 Google Map API 이용해서 내 위치 지도에 표시하기 (1) | 2017.08.01 |
Geocoder 클래스 이용해서 위치값으로 주소 얻어오기 (0) | 2017.07.21 |
Android에서 Google Map API 이용해 지도 화면 만들기 (1) | 2017.07.19 |
Google Map 에서 내 위치 지도에 표시하기 (3) | 2017.04.03 |
Android 의 Location Class와 위도, 경도 이용한 거리 계산 (2) | 2017.02.19 |
댓글