権限

ARDKの一部の機能で必要となるデバイスの権限の処理方法について説明します。

機能

必要な権限

説明

ARSession

カメラ

Androidでは、 ARSessionFactory.Create を呼び出す に権限のリクエストと付与を行う必要があります。行わない場合は、メソッドより null が返ります。iOSでは、 ARSession の初回実行時に権限がリクエストされます。

位置情報サービス

(正確な)位置情報

権限が不足している場合は、 ILocationService.StatusUpdated イベントで、位置情報サービスの起動に失敗したことを示す画面が表示されます。

マルチプレイヤー

ローカルネットワーク

iOSでのみ必要です。マルチプレイヤー(MultipeerNetworking および ARNetworking)クラスは、低遅延のメッセージを送信するためにピアツーピアのUDP接続を使用します。

注釈

VPSのWayspot Anchors機能では、ARSessionとLocationServiceの両方の機能を実行するため、上記の機能で求められるすべての権限が必要です。

権限をリクエストする

iOSでは、その権限を必要とする機能が最初に起動されたときにプラットフォームから自動的に権限がリクエストされますが、Androidでは、アプリケーションコードのどこかで権限をリクエストする必要があります。ARDKの PermissionRequester APIでは、 UnityのAndroid Permissions API をラップアラウンドして、権限をリクエストするメソッドでasync/awaitオプションとcallbackオプションの両方を使用できます。

AndroidとiOSのどちらでも、権限をリクエストするタイミングや方法を詳細に制御できるように、プラットフォームに依存しない権限要求APIを開発中です。

UnityでAndroid Permissionsコンポーネントを使用する

ARDKには、 PermissionRequester を簡単に使用できるように、Android Permissionsヘルパーコンポーネントが用意されています。UnityのAR Session Managerにこのコンポーネントを追加し、必要なアクセス権限をリクエストするように設定します。

例えば、セッション開始時にユーザーにカメラ使用許可を求めるには、ARセッションマネージャーにAndroid承認ヘルパーを追加しましょう。サイズ を1に設定し、ドロップダウンに**カメラ** があることをご確認ください。これにより、実行時にアプリがユーザーに対してカメラ使用の許可を求めるようにできます。

../../_images/placement_step4a.png