Headworn起動モデルのアプリ権限
Headwornの起動モデルには、実行時にネイティブのAndroidのポップアップを処理するメカニズムが欠けています。その代わりに、コンテンツをARグラスに表示する前に、スマートフォンから許可を要求し、承認する必要があります。
このモデルでは、UnityアクティビティがARグラス上で実行されているため、Unityから要求された権限はスマートフォンには表示されません。
代わりに、グラスに操作できない形で表示されます。
権限は、スマートフォン上で実行されているアクティビティから要求する必要があるため、起動後に要求することはできません。
Snapdragon Spaces SDKは、アプリケーションの起動時に権限のチェックを自動的に開始します。
Manifestの権限の設定
開発者はUnityのガイドラインに従って、AndroidのManifestに権限を追加してください。
これを実現する最も簡単な方法は、Custom Main Manifestを使用し、必要な権限を追加することです。
例えば、バックグラウンドロケーションの権限を要求するには、Custom Manifestに以下を追加します。
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
アプリケーションが開始されると、権限が要求されます。
権限の動作のカスタマイズ
Snapdragon Spaces SDKには、Activities_Android_Project_X_XX_X.zipというアーカイブが含まれています。このアーカイブには、Snapdragon Spaces SDK Activitiesのプロジェクトのソースコードが含まれています。
通常、このプロジェクトは事前にコンパイルされ、Snapdragon Spacesのプロジェクトに自動的に含まれます。
以下の情報は、権限チェックの動作をよりコントロールしたい開発者にのみ関連するものです。AndroidのネイティブAPIとJavaコードに精通していることが不可欠です。
SplashScreenActivity
は、OpenXRランタイムのアプリケーション (以下の項目を参照) とHeadwornのアプリケーションの両方の権限をチェックするPermissionHelper
クラスを通して、権限のチェックを処理します。
参照
project\src\main\java\com\qualcomm\snapdragon\spaces\splashscreen\SplashScreenActivity.java
project\src\main\java\com\qualcomm\snapdragon\spaces\helpers\PermissionHelper.java
簡単にするために、SplashScreenActivityは、アプリケーションの起動時に、自動的にセキュリティ権限のチェックを開始するように設定されています。この動作を変更するために、プロジェクトを修正することが可能です。
-
続行する前に、元のファイルのバックアップを取ってください。
-
gradle assemble
または./gradle assemble
コマンドを実行して、assemble
タスクを実行し、変更したプロジェクトをビルドします。 -
Snapdragon Spaces SDKパッケージの次のファイルを、ビルドの結果と置き換えます:
SnapdragonSpacesPlugin\Packages\com.qualcomm.snapdragon.spaces\Runtime\Core\Android\SpacesActivities.aar
この方法はお勧めしません。Dual Render Fusionの起動モデルを使って権限を処理する方が、はるかにシンプルです!
Headwornの起動モデルによるOpenXRランタイムの権限
Snapdragon Spaces SDKを使用してアプリケーションをビルドする場合、Unityアプリケーションを正しく機能させるために、OpenXRランタイムのアプリケーションに特定の権限が付与されている必要があります。
- ほとんどのSnapdragon Spacesの知覚機能を使用するには、OpenXRランタイムにカメラ権限を許可する必要があります。
- OpenXRランタイム で、詳細設定の「他のアプリに重ねて表示」を許可する必要があります。
Headwornの起動モデルでは、Snapdragon Spaces ActivitiesプロジェクトのSplashScreenActivity
が、OpenXRランタイムのアプリケーションがインストールされていること、およびこれらの権限のチェックが許可されていることを確認します。これらのチェックはすべて、アプリケーションの起動時に行われます。