Android 12L 이상 블루투스 대응

고성욱·2023년 3월 17일

12L이상의 안드로이드 핸드폰에서 갑작스럽게 블루투스 스캔이 되지 않았다.

그래서 에러 문구를 찾아보니 아래와 같은 에러가 떠 있었다.

sdk 31이상 부터는 새롭게 블루투스 스캔 퍼미선 허용이 필요해졌다고 한다!

Android 12의 새 블루투스 권한 | Android Developers

공식 문서에 보면

Android 12의 새 블루투스 권한

Android 12에서는 [BLUETOOTH_SCAN](https://developer.android.com/reference/android/Manifest.permission?hl=ko#BLUETOOTH_SCAN)[BLUETOOTH_ADVERTISE](https://developer.android.com/reference/android/Manifest.permission?hl=ko#BLUETOOTH_ADVERTISE)[BLUETOOTH_CONNECT](https://developer.android.com/reference/android/Manifest.permission?hl=ko#BLUETOOTH_CONNECT) 권한을 도입합니다. 이를 통해 앱이 위치 정보 액세스 권한을 요청하지 않고도 근처 기기를 검색할 수 있습니다. 이러한 권한을 선언하려면 앱이 Android 12를 타겟팅해야 합니다.

참고: 부속 기기 관리도구는 이 페이지에 설명된 권한에 비해 부속 기기에 연결하는 더 간소화된 메서드를 제공합니다. CDM 시스템은 앱을 대신해 페어링 UI를 제공하고 위치 정보 액세스 권한이 필요하지 않습니다.

  • BLUETOOTH_SCAN 이 권한이 없어서 생긴 문제 였다.

권한을 허용해 주고 권한 허용을 하는 코드에

Manifest.permission.BLUETOOTH_CONNECT,

Manifest.permission.BLUETOOTH_SCAN,

추가로 넣으니 오른쪽과 같이 오류 없이

블루투스를 스캔하게 되었다.

이번 에러를 해결하면서 공식문서랑 새로운 버전이 업데이트 될때마다 권한이나 새로 추가가 되는게 없는지 잘 확인 해야겠다.

profile
안드로이드, 파이썬 개발자

0개의 댓글