Permissions for Dual Render Fusion
Dual Render Fusion enables continuous use of the mobile phone screen. This allows users the ability to tap on the phone screen to respond to native Android pop-up permission prompts.
Application Permissions
When using Dual Render Fusion, application permissions may be requested at any time, but the Camera permission must be requested and authorized prior to use. Application camera permissions are required before making use of the Camera Access feature. Refer to this list of the required permissions per feature.
If an application only uses the Camera permission to use Snapdragon Spaces features, it is recommended to authorize the Camera permissions only after verifying that the OpenXR Runtime application is installed, and before starting up OpenXR services. This can be achieved by subscribing to the On OpenXR Available on the Spaces Lifecycle Events component.
Any additional permissions required by an application, such as Microphone or Location, may be requested at any time while the app is running. An Android permission prompt popup will appear on the mobile device with authorization options presented to the user on the touchscreen.
Permissions for the OpenXR Runtime
When an application is built with the Snapdragon Spaces SDK, the OpenXR Runtime application must have certain permissions granted to it for the Unity application to function correctly:
- Camera permissions must be granted to the OpenXR Runtime to use most Snapdragon Spaces perception features.
- If an app uses Hand Tracking, then the Camera permission needs to be requested and authorized prior to starting up any OpenXR services, as Hand Tracking is a core service which is intrinsically linked to the OpenXR Runtime.
- If an app does not utilize Hand Tracking but wants to use another service which requires access to the Camera, the Camera permission would not need to be requested and authorized until just before activating the related feature.
- The advanced setting Display over other apps must be allowed on the OpenXR Runtime. This allows the application to draw the Dual Render Fusion phone content on the phone's display correctly. Without this permission, the OpenXR content is displayed on both the glasses and the phone, and any Dual Render Fusion phone content will not be visible.
Checking OpenXR Runtime Installation and Application Camera Permissions
From Snapdragon Spaces SDK version 0.23.2, the Spaces Permission Helper component can be used for checking that the OpenXR Runtime application is installed, and that the Unity application has the required camera permissions. Refer to the Spaces Permission Helper component documentation for more detailed information, and the OpenXR Loading Test sample scene for an example of use.
Camera Permission for the OpenXR Runtime
When Dual Render Fusion is enabled, the Camera permission for the OpenXR Runtime application is checked:
- Each time glasses are connected when trying to start OpenXR. This check will only happen if any enabled features require services camera permissions.
If the Camera permission is not granted, it must be granted manually by the user. A popup dialog informing the user how to grant this permission will be shown.
When the user selects the positive option, (in this case Yes
), the home screen for the OpenXR Runtime will be opened and ask the user to grant camera permissions.
Display Over Other Apps Permission for the OpenXR Runtime
When Dual Render Fusion is enabled, the Display over other apps permission for the OpenXR Runtime application is checked:
- Once during the Start method of the Dynamic OpenXR Loader component.
- Each time glasses are connected.
If the Display over other apps permission is not granted, it must be granted manually by the user. A popup dialog informing the user how to grant this permission will be shown.
When the user selects the positive option, (in this case Configure
), a list of applications will be shown, and they must select Snapdragon Spaces Services
from that list to allow the permission.
After both of these permissions are granted, the application is closed and the user must restart it.
Localizing the Popup Dialog
The Dynamic OpenXR Loader component has five optional fields. The first two are relevant to these permissions, Cannot Display Overlay Dialog Options Provider and Runtime Camera Permissions Dialog Options Provider.
It can be used to customize the text shown to the user when the Display over other apps and camera permissions are not allowed. See the entry on the Cannot Display Overlay Dialog Options Provider for usage instructions.