### 이슈
java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for AttributionSource
{ uid = 10965, packageName = ### , attributionTag = null, token = android.os.BinderProxy@b85f7e3, next = null }:
GattService registerScanner
### 해결방안
> 안드로이드 12 적용하면서 Android 12에서는 BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT 권한을 도입합니다. 이를 통해 앱이 위치 정보 액세스 권한을 요청하지 않고도 근처 기기를 검색할 수 있습니다. 이러한 권한을 선언하려면 앱이 Android 12를 타겟팅해야 한다.
1. manifest 적용
<manifest>
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<!-- Needed only if your app looks for Bluetooth devices.
You must add an attribute to this permission, or declare the
ACCESS_FINE_LOCATION permission, depending on the results when you
check location usage in your app. -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<!-- Needed only if your app makes the device discoverable to Bluetooth
devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<!-- Needed only if your app communicates with already-paired Bluetooth
devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
...
</manifest>
2. 블루투스 사용 권한 요청 시 requestPermission 요청
if (PermissionType.BLUETOOTH == type ) {
permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION);
permissions.add(Manifest.permission.ACCESS_FINE_LOCATION);
permissions.add(Manifest.permission.BLUETOOTH);
permissions.add(Manifest.permission.BLUETOOTH_ADMIN);
permissions.add(Manifest.permission.BLUETOOTH_SCAN);
permissions.add(Manifest.permission.BLUETOOTH_ADVERTISE);
permissions.add(Manifest.permission.BLUETOOTH_CONNECT);
}
https://developer.android.com/about/versions/12/features/bluetooth-permissions?hl=ko
반응형
'Mobile > Android' 카테고리의 다른 글
[AOS] Health Connect 시작하기 - 11 May 2022 (0) | 2023.02.08 |
---|---|
[AOS] Android SDK 플랫폼 출시 노트 - API 레벨 (0) | 2023.01.15 |
[Android] 개발자 정책 변경 (6/16일까지 변경 필요) (0) | 2020.05.19 |
[Android] DisplayMetrics (0) | 2020.05.14 |
[Android] Launching 'app' on Unknown Device. (0) | 2019.10.23 |