CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
Bluetoothデバイスの検出
CriAtomOutputDeviceObserver で音声出力デバイスの切り替わりを検知する場合、Bluetoothに関する権限を取得する必要があります。
以下の手順でプロジェクトの設定を行うとともに、アプリケーション上での権限取得処理を実装してください。
これらを行わない場合、Bluetoothデバイスの切り替わりを検知することができません。

Android.manifestの設定

アプリケーションのAndroid.manifestにて権限を宣言します。
Androidバージョンに応じて権限宣言を切り替える必要がある点にご注意ください。
<manifest>
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
</manifest>

実行時の権限取得

API Level 31以降では、アプリケーション実行時にユーザーの承認をリクエストしてBluetooth関連の権限を得る必要があります。
以下のような処理で起動後に権限の確認とリクエストを行ってください。
#if !UNITY_EDITOR && UNITY_ANDROID
using UnityEngine.Android;
#endif
// 中略
#if !UNITY_EDITOR && UNITY_ANDROID
private static void RequestBluetoothPermission()
{
var sdkVersion = GetAndroidSdkVersion();
if (sdkVersion >= 31)
{
if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_CONNECT"))
{
Permission.RequestUserPermission("android.permission.BLUETOOTH_CONNECT");
}
}
}
private static int GetAndroidSdkVersion()
{
using (var version = new AndroidJavaClass("android.os.Build$VERSION"))
{
return version.GetStatic<int>("SDK_INT");
}
}
#endif