투케이2K

228. (TWOK/ERROR) [Android] 안드로이드 CompileSdk 30 및 안드로이드 12 기기 이상 블루투스 스캔 이슈 - 근처 기기 권한 확인 본문

투케이2K 에러관리

228. (TWOK/ERROR) [Android] 안드로이드 CompileSdk 30 및 안드로이드 12 기기 이상 블루투스 스캔 이슈 - 근처 기기 권한 확인

투케이2K 2024. 3. 21. 21:00
반응형

[환경 설정 및 설명]

프로그램 : AndroidStudio

설 명 : [Android] 안드로이드 CompileSdk 30 및 안드로이드 12 기기 이상 블루투스 스캔 이슈 - 근처 기기 권한 확인

java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for Attributio
 

[에러 원인]

1. 안드로이드 12 이상 블루투스 스캔을 하기 위해서는 [근처 기기] 권한이 필요한데 CompileSdk 30 버전에서는

사용자로부터 근처 기기 권한을 획득 할 수 없어 퍼미션 권한 에러 발생 (Bluetooth Scan)

 

[해결 방법]

1. AndroidManifest 파일에 블루투스 스캔 및 연결 관련 권한 선언 후 프로그램 소스 코드 단에서 해당 기능 요청 후

에러 발생 유무에 따라 [근처 기기] 권한이 정상 부여 된 것 확인

>> 에러가 발생한 경우 [근처 기기] 권한이 부여되지 않은 것으로 판단해 > 알림 창 표시 (애플리케이션 설정 이동 후 근처기기 권한을 활성해 주세요)

2. 소스 코드 추가

 

    <!-- ============================================================= -->
    <!-- [AndroidManifest.xml] : [블루투스 권한 추가 안드로이드 12 이상 대응] -->
    <!-- ============================================================= -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>





        // ---------------------------------------------------------------
        // [Java 소스 코드] : [근처 기기 권한 체크 수행] : ble_Adapter.getBondedDevices : 블루투스 스캔 권한 체크 기능 사용
        // ---------------------------------------------------------------
        try {
            BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
            BluetoothAdapter ble_Adapter = bluetoothManager.getAdapter();
            Set<BluetoothDevice> pairedDevices = ble_Adapter.getBondedDevices();

            S_Log._W_("근처 기기 권한 체크 성공", null);

            // [추가 로직 처리]
        }
        catch (Exception e){
            S_Log._E_("근처 기기 권한 체크 에러 발생", new String[]{String.valueOf(e.getMessage())});
        }

 

반응형
Comments