728x90
맵 관련 프로젝트를 진행하는 과정에서 gps 정보는 필수적입니다.
위치정보를 표현하는데에는 위도, 경도값이 필요한데, 이 값을 가져오는 예제입니다.
....
val Tag: String = this.javaClass.simpleName
var latitude: Double = 0.0
var longitude: Double = 0.0
val gpsListener: LocationListener = object : LocationListener { //리스너 구현
override fun onLocationChanged(location: Location) {
latitude = location.latitude
longitude = location.longitude
Log.i(Tag, "위도 ($latitude) || 경도 ($longitude)")
}
override fun onProviderDisabled(provider: String) {
super.onProviderDisabled(provider)
}
override fun onProviderEnabled(provider: String) {
super.onProviderEnabled(provider)
}
override fun onLocationChanged(locations: MutableList<Location>) {
super.onLocationChanged(locations)
}
}
val gpsManager = getSystemService(LOCATION_SERVICE) as LocationManager
override fun onDestroy() {
super.onDestroy()
gpsManager.removeUpdates(gpsListener) //위치정보 리스너 해제
}
fun getLocationInfo() {
if (ActivityCompat.checkSelfPermission( //위치정보를 안전하게 가져오기 위한 퍼미션 체크
this,
Manifest.permission.ACCESS_FINE_LOCATION
) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this,
Manifest.permission.ACCESS_COARSE_LOCATION
) != PackageManager.PERMISSION_GRANTED
) {
return
}
//gps매니저 객체를 통해 gps 값 요청하기. (2번째 인자는 interval, 3번째 인자는 거리간격, 4번째 인자는 리스너)
gpsManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10f, gpsListener)
}
fun getLatitude(): Double {
return latitude
}
fun getLongitude(): Double {
return longitude
}
728x90
'Mobile > Kotlin' 카테고리의 다른 글
[Kotlin] Dialog 만들기 (0) | 2023.06.09 |
---|---|
[Android] KakaoMap API 연동하기 위해 조치한 것들 (0) | 2023.05.11 |
댓글