Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- apk이름변경
- bluetoothmanager
- 비콘스캐닝
- 스레드 #코루틴
- 1회용 플라스틱컵
- withContext
- 안드로이드스튜디오 jdk
- compse state
- 안드로이드 sms
- 모의위치 주입
- 플라스틱 생분해
- viewmodelscope
- TowmonUSB 연결오류
- var 와 val
- Room 데이터베이스 업데이트
- TwomonUSB
- 코틀린 트리거 버튼
- 커스텀스피너
- json 저장
- 안드로이드 스튜디오 애뮬레이터
- 코루틴 job
- compse collectAsState
- 셀룰로오스-g-폴리락타이드 공중합체
- 라이브데이터 postValue
- 안드로이드 mvvm
- #큐구조 #큐다운로드
- 안드로이드 비콘
- 토글 험수
- 코루틴스코프
- 코틀린 이미지저장 #파일저장
Archives
- Today
- Total
EnjoyLife
모의 위치 주입및 해제 본문
1.모의위치 주입
Android에서 모의 위치 API는 주로 LocationManager를 사용하여 테스트 목적으로 가짜 GPS 위치를 주입하는 데 사용됩니다. 이를 통해 개발자는 앱의 위치 기반 기능을 테스트할 수 있습니다. 주요 개념과 사용 방법은 다음과 같습니다:
1. 모의 위치 제공자 추가
addTestProvider 메서드를 사용하여 모의 위치 제공자를 추가합니다. 이 제공자는 GPS, 네트워크 등과 같은 실제 위치 제공자를 모방합니다.
private lateinit var locationManager: LocationManager
locationManager.addTestProvider(
LocationManager.GPS_PROVIDER, // GPS 제공자
false, false, false, false,
true, true, true,
ProviderProperties.POWER_USAGE_LOW,
ProviderProperties.ACCURACY_FINE
)
locationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true)
val mockLocation = Location(LocationManager.GPS_PROVIDER).apply {
latitude = 37.7749 // 위도
longitude = -122.4194 // 경도
accuracy = 1f // 정확도
time = System.currentTimeMillis() // 현재 시간
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
elapsedRealtimeNanos = System.nanoTime()
}
}
locationManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, mockLocation)
2.모의 위치 해제
locationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, false)
locationManager.removeTestProvider(LocationManager.GPS_PROVIDER)
(실제 위치 업데이트)
private fun startRealLocationUpdates() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
) { return }
val request = LocationRequest.Builder(
Priority.PRIORITY_HIGH_ACCURACY,
5000L
).setMinUpdateDistanceMeters(1f).build()
fusedClient.requestLocationUpdates(
request,
locationCallback,
Looper.getMainLooper()
)
}
'안드로이드 개발 > 모의위치(GPS)' 카테고리의 다른 글
안드로이드 14 기기 LocationManager 의 setTestProviderEnabled 호출시 오류 (2) | 2025.05.28 |
---|