안드로이드 12(API LEVEL 31) 이상의 버전으로 유니티 앱을 빌드하는 과정에서, 특히 블루투스 기능을 포함한 앱을 개발할 경우 주의해야 할 변경 사항이 있습니다. 이번 경험은 안드로이드 12로 업데이트하면서 변경된 블루투스 권한에 대응하는 과정에서 어떻게 해결했는지 작성해보도록 하겠습니다.
1. 문제의 발단
안드로이드 12부터 블루투스 권한이 변경되었기 때문에, 유니티에서 만든 블루투스 관련 앱이 강제 종료되는 현상을 겪게 되었습니다.
특히 iBeacon을 활용하는 AR 앱 같은 경우, 근처의 캐릭터가 등장하는 기능을 사용하기 위해선 블루투스 기능이 필수적인데, 이러한 기능이 제대로 작동하지 않아 앱이 강제 종료되는 문제가 발생했습니다.
2. 해결 방안
안드로이드 개발자 문서에 따르면, 안드로이드 12에서는 블루투스 권한이 다음과 같이 변경되었습니다.
앱이 블루투스 기기와 상호작용한다면 다음을 실행하는 것이 좋습니다.
1. 앱이 저전력 블루투스(BLE) 주변기기와 같은 블루투스 기기를 검색하는 경우 BLUETOOTH_SCAN 권한을 앱 매니페스트에 추가합니다.
2. 앱이 현재 기기를 다른 블루투스 기기에서 검색할 수 있도록 하려는 경우 BLUETOOTH_ADVERTISE 권한을 앱 매니페스트에 추가합니다.
3. 앱이 이미 페어링된 블루투스 기기와 통신한다면 BLUETOOTH_CONNECT 권한을 앱 매니페스트에 추가합니다. 기존 블루투스 관련 권한 선언의 경우 android:maxSdkVersion을 30으로 설정합니다.
4. 이 앱 호환성 단계를 통해 시스템은 Android 12를 실행하는 기기에 설치할 때 필요한 블루투스 권한만 앱에 부여할 수 있습니다.
이 변경 사항에 따라, 유니티에서 빌드할 때 AndroidManifest.xml 파일을 다음과 같이 수정해야 합니다
<!-- 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" />
이 권한 설정을 통해 안드로이드 12 이상에서 유니티로 개발된 블루투스 기능이 포함된 앱의 강제 종료 문제를 해결할 수 있었습니다.
결론
안드로이드 버전이 업데이트될 때마다 새로운 권한 요구 사항이나 기능 변경 사항이 도입되는 경우가 많습니다. 따라서 스토어에 앱을 등록하려는 개발자는 변경 사항을 꼼꼼히 확인하고 앱의 호환성을 보장하기 위해 필요한 조치를 취해야 합니다.
함께보면 좋은글
'Language > UNITY' 카테고리의 다른 글
[UNITY] 빌드 시 IL2CPP.exe 에러 (0) | 2023.01.30 |
---|---|
[UNITY] 유니티 안드로이드 구글플레이스토어 앱 등록 시 에러 해결방법 (0) | 2023.01.19 |
유니티엔진 창 여러개 띄우기 (0) | 2014.08.06 |
유니티엔진과 비쥬얼스튜디오 연결하자 UnityVS (0) | 2014.07.31 |