AndroidManifest.xml
<!--네트워크로만 위치 측정-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!--GPS 센서를 사용하여 위치 측정-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
1) ACCESS_COARSE_LOCATION만 요청할 때 표시되는 시스템 권한 대화상자
2) ACCESS_FINE_LOCATION 및 ACCESS_COARSE_LOCATION을 모두 요청할 때 표시되는 시스템 권한 대화상자
정확한 위치 / 대략적인 위치
- 사용자 선택이 권한 부여에 영향을 미침
private fun checkPermissions(): Boolean {
val fineLocalPermission = ContextCompat.checkSelfPermission(
binding.root.context,
Manifest.permission.ACCESS_FINE_LOCATION
)
val coarseLocationPermission = ContextCompat.checkSelfPermission(
binding.root.context,
Manifest.permission.ACCESS_COARSE_LOCATION
)
// 권한이 부여됐으면 지정된 요청과 지정된 콜백에 전달된 결과로 위치 업데이트를 요청
if (fineLocalPermission == PackageManager.PERMISSION_GRANTED && coarseLocationPermission == PackageManager.PERMISSION_GRANTED) {
mFusedLocationClient?.requestLocationUpdates(locationRequest!!, myLocationCallBack!!, null)
return true
}
return false
}
출처 : https://developer.android.com/training/permissions/requesting?hl=ko