メインコンテンツまでスキップ
バージョン: 1.0.1

アプリ権限の取り扱い

Snapdragon Spacesを使用して構築されたアプリケーションは、ARグラスに接続されたモバイルデバイス、またはAIO(All-In-One)ヘッドセットに展開することができます。

モバイルデバイスのデプロイについては、現在Androidベースのスマートフォンがサポートされており、将来的には他のAndroidベースのタッチプラットフォームにも拡大される可能性があります。
Androidベースのアプリケーションは、データへのアクセスやいくつかのアクションを実行するために、アクセス権限を必要とします。
これらのアクセス権限は、エンドユーザーによってアプリケーションごとに付与されます。この詳細については、Androidの開発者向けウェブサイトの「Permissions on Android」ページを参照してください。また、UnityプロジェクトでAndroidのアクセス権限を設定するために必要なUnity特有の変更にも注意してください。

起動モデル

ARグラスを接続したスマートフォンでSnapdragon Spacesアプリを実行する場合、HeadwornDual Render Fusionの2つの起動モデルから選択できます。これについては、Dual Render Fusionのアーキテクチャのページで詳しく説明しています。

Snapdragon Spacesアプリでは、一部の機能を完全に使用するために特定のアクセス権限が必要です。

機能OpenXRランタイムに必要な権限アプリに必要な権限
カメラへのアクセスNoYes
ハンドトラッキングYes (OpenXRを開始する前)No
ヒットテストYesNo
画像トラッキングYesNo
平面検出YesNo
QRコードトラッキングYesNo
空間アンカーYesNo
空間メッシュYesNo

アプリの実行中に権限を確認する

2つの起動モデルのいずれかを使用している場合、Unityで次のように確認する記述をすることで、アプリケーションの実行中にいつでも権限を確認することができます。

// request android.permission.RECORD_AUDIO
string permissionToRequest = Permission.Microphone;
if (!Permission.HasUserAuthorizedPermissions(permissionToRequest))
{
...
// Prevent access to application systems which require android.permission.RECORD_AUDIO
...
}

UnityのAndroidの権限の詳細については、Unityのマニュアルを参照してください。

アプリの実行中に権限を要求する

Dual Render Fusionを使用する場合、アプリケーションの実行中はいつでも権限が要求される可能性があります。
Headwornの起動モデルを使用している場合、これらの要求は許可されません。要求する前に、要求しても安全かどうかを確認してください。

var nativeXRSupportChecker = new AndroidJavaClass("com.qualcomm.snapdragon.spaces.serviceshelper.NativeXRSupportChecker");
if (nativeXRSupportChecker.CallStatic<bool>("CanShowPermissions") || FeatureUseCheckUtility.IsFeatureEnabled(FeatureUseCheckUtility.SpacesFeature.Fusion))
{
Permission.RequestUserPermission(permissionToRequest);
}