728x90
반응형
LocationRequest
- Android에서 위치 정보를 요청할 때 사용하는 설정 객체
- 얼마나 자주, 어떤 방식으로 요청할지 설정할 수 있다.
이전 방식 (Android 12 (API 31) 이하)
현재의 LocationRequest.Builder()가 아닌 LocationRequest.create() 사용해 위치 요청을 설정하는 객체 생성 역할을 했다.
예시
val locationRequest = LocationRequest.create().apply {
priority = LocationRequest.PRIORITY_HIGH_ACCURACY // 정확도가 올라가지만 배터리 소모가 커지는 옵션
interval = 10000 // 10초마다 위치 업데이트
fastestInterval = 5000 // 최소 5초 간격
numUpdates = 1 // 최대 1번만 가져오기
}
apply {} 블록을 사용해 객체를 생성함과 동시에 속성을 설정
Deprecated된 이유
- 명확하지 않은 API 구조
- LocationRequest.create()는 어떤 설정이 필수인지, 어떤 설정이 선택적인지 직관적이지 않음
- interval, fastestInterval, priority 등을 설정하지 않으면 기본값이 자동 설정되지만, 그 값이 명확하지 않음
- 일관성 없는 사용 방식
- Android의 다른 설정 객체들은 Builder 패턴을 따르고 있었기 때문에 통일할 필요성이 있었다.
이와 같은 이유들로 쓰지 않게 되었지만, 기기 호환성을 위해 필요한 경우가 있으니 알면 좋다.
LocationRequest.Builder (권장 방식)
Android 13 (API 33) 이상을 요구한다.
주요 속성
속성 | 설명 |
Priority | 위치 요청의 우선순위(정확도). 예: 고정밀도(GPS 기반), 배터리 절약(네트워크 기반) 등. |
Interval | 위치 업데이트를 요청하는 간격(밀리초 단위). |
Max Updates | 위치 업데이트의 최대 횟수. |
Duration | 위치 요청이 유지되는 총 지속 시간. |
Min Update Time | 위치 업데이트 사이의 최소 시간 간격(밀리초). |
Min Update Distance | 두 위치 업데이트 사이의 최소 거리 차이(미터 단위). |
사용방법1
val locationRequest = LocationRequest.Builder(0L) // 즉시 한 번만 위치 업데이트
.setMaxUpdates(1) // 최대 1번만 위치를 가져옴
.build()
- 위치를 한번만 가져오고 자동 종료
- 0L로 설정하면 즉시 실행
- 주기적인 업데이트가 필요없으니 interval 생략
사용방법2
val locationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 5000) // 5초 간격 업데이트
.build()
- 5초마다 GPS 기반으로 위치 요청
- 배터리 소모 큼
사용방법3
val locationRequest = LocationRequest.Builder(Priority.PRIORITY_BALANCED_POWER_ACCURACY, 10000) // 10초 간격
.build()
- GPS를 사용하지 않고 WiFi&네트워크로 위치 요청
- 배터리를 절약하면서 위치를 가져옴
Priority 옵션
옵션 | 설명 |
Priority.PRIORITY_HIGH_ACCURACY | GPS + 네트워크 기반으로 가장 정확한 위치 요청 |
Priority.PRIORITY_BALANCED_POWER_ACCURACY | 배터리 절약 모드 (WiFi & 네트워크 기반 위치 요청) |
Priority.PRIORITY_LOW_POWER | 저전력 모드, 위치 업데이트를 자주 하지 않음 |
Priority.PRIORITY_PASSIVE | 다른 앱에서 위치 정보를 가져올 때만 업데이트 |
728x90
반응형
'안드로이드 학습(Kotlin)' 카테고리의 다른 글
Geocoder란? (2) | 2025.02.06 |
---|---|
FusedLocationProviderClient란? (1) | 2025.02.06 |
17. Android Animation (Property Animation) (1) | 2025.02.04 |
16. Glide로 이미지 처리하기 (1) | 2025.02.04 |
15. ViewPager의 개념과 구조 (0) | 2025.02.04 |