アプリ権限の取り扱い
Snapdragon Spacesを使用して構築されたアプリケーションは、ARグラスに接続されたモバイルデバイス、またはAIO(All-In-One)ヘッドセットに展開することができます。
モ バイルデバイスのデプロイについては、現在Androidベースのスマートフォンがサポートされており、将来的には他のAndroidベースのタッチプラットフォームにも拡大される可能性があります。
Androidベースのアプリケーションは、データへのアクセスやいくつかのアクションを実行するために、アクセス権限を必要とします。
これらのアクセス権限は、エンドユーザーによってアプリケーションごとに付与されます。この詳細については、Androidの開発者向けウェブサイトの「Permissions on Android」ページを参照してください。また、UnityプロジェクトでAndroidのアクセス権限を設定するために必要なUnity特有の変更にも注意してください。
起動モデル
ARグラスを接続したスマートフォンでSnapdragon Spacesアプリを実行する場合、HeadwornとDual Render Fusionの2つの起動モデルから選択できます。これについては、Dual Render Fusionのアーキテクチャのページで詳しく説明しています。
Snapdragon Spacesアプリでは、一部の機能を完全に使用するために特定のアクセス権限が必要です。
機能 | OpenXRランタイムに必要な権限 | アプリに必要な権限 |
---|---|---|
カメラへのアクセス | No | Yes |
ハンドトラッキング | Yes (OpenXRを開始する前) | No |
ヒットテスト | Yes | No |
画像トラッキング | Yes | No |
平面検出 | Yes | No |
QRコードトラッキング | Yes | No |
空間アンカー | Yes | No |
空間メッシュ | Yes | No |
-
Dual Render Fusionの起動モデルを使用した権限に関する推奨事項については、Dual Render Fusionのアプリの権限を処理するを参照してください。
-
Headwornの起動モデルを使用した権限に関する具体的な推奨事項については、Headworn起動モデルを使用したアプリの権限の処理を参照してください。
アプリの実行中に権限 を確認する
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);
}