마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

블루투스 타겟버전이하에서의 권한 설정

0 추천
현재 BLE 디바이스와 통신하는 앱 (위치와 상관없는 측정 기기)을 만들고 있습니다.

승인에서 리젝이 나서 권한 설정에서 FINE_LOCATION을 빼려고 합니다. 아래 문서에도 위치를 쓰지 않으면 빼라고 나오는데요,

https://developer.android.com/guide/topics/connectivity/bluetooth/permissions

저희는 타겟버전이 31 이라서  이걸 빼야 하는데, 그 이하 타겟 버전에서는 이 권한이 필요하다고 합니다. 이게 타겟 버전이라서 빼도 되는 것 같은데.. (minSDK 는 21 이므로 안드로이드 11 이하입니다)

이럴 때 11 이하 기기에서 크래시 되거나 하는 현상이 발생하는지요?

이럴 때 문서가 좀 더 친절하면 좋겠다는 생각을 합니다.
문태태 (350 포인트) 님이 2023년 2월 22일 질문

1개의 답변

0 추천
 
채택된 답변

 님 말씀대로라면 버전체크를 해서 31인 경우만 런타임에 권한을 묻지 않도록 해야할 것 같은데요.

if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.S) {
     // 로케이션 권한 요청.
    return;
}

런타임에 권한 요청을 처리하는 자세한 방법은 개발자 가이드를 참고하세요.
https://developer.android.com/guide/topics/permissions/overview

그리고 AndroidManifest.xml에는

https://developer.android.com/guide/topics/manifest/uses-permission-element

에 나온것처럼 31까지만 해당 권한을 사용하도록 하면 될 것 같아 보이네요.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
                     android:maxSdkVersion="30" />

 

spark (226,420 포인트) 님이 2023년 2월 22일 답변
문태태님이 2023년 2월 22일 채택됨
답변 감사합니다. 많은 도움 됐습니다.
...