
844 Chapter 19
권한 요청
앱에 권한 요청하기
지금까지
OdometerService
에서 사용자의 정확한 위치를 얻도록 권한이
허용되어 있는지 확인하는 코드를 구현했습니다. 권한이 허용되어 있으면
안드로이드의 위치 서비스를 이용해 사용자가 이동한 거리를 계산합니다.
하지만 권한이 허용되어 있지 않다면 어떻게 할까요?
앱에 사용자의 정확한 위치를 얻도록 권한이 없으면
OdometerService
는
위치 서비스를 사용할 수 없습니다. 권한이 없다고 포기할 것이 아니라
사용자에게 권한을 달라고 요청하면 더 좋을 겁니다.
앱에 필요한 권한이 없으면 이를 사용자에게 요청하도록
MainActivity
를
바꿉니다. 그러려면
MainActivity
에서 세 가지 작업을 해야 합니다.
먼저 런타임에 필요한 권한을 요청하도록 액티비티를 구현합시다.
MainActivity가 서비스와 연결하기 전에 필요한 권한이 없으면
ACCESS_FINE_LOCATION 권한을 요청합니다.
그러면 다음과 같은 권한 요청 다이얼로그가 사용자에게 나타납니다.
1
응답을 확인한 다음 권한이 허용되었으면 서비스와 연결합니다.
2
권한이 거부되었으면 알림을 보냅니다.
3
ACCESS_FINE_LOCATION 권한을
런타임에 요청하면 이런 다이얼로그가
나타나요.
사용자가 필요한 권한을
허용하지 않으면 ...