Permission Helpers

Two utility functions for handling AR-related permissions.

import {
  requestRequiredPermissions,
  checkPermissions,
  ViroPermission,
} from "@reactvision/react-viro";

ViroPermission type: "camera" | "microphone" | "storage" | "location"

requestRequiredPermissions(permissions?)

Prompts the user for the specified permissions. Pass a ViroPermission[] to request a subset, or call with no arguments to request all four.

// Camera only
const { camera } = await requestRequiredPermissions(["camera"]);

// Camera + microphone
const { camera, microphone } = await requestRequiredPermissions(["camera", "microphone"]);

// All four at once
const result = await requestRequiredPermissions();

checkPermissions(permissions?)

Reads current permission status without showing any system dialog. Useful for checking what is already granted before deciding whether to call requestRequiredPermissions.

const { camera } = await checkPermissions(["camera"]);
if (!camera) {
  // Guide user to Settings or call requestRequiredPermissions
}

The resolved object contains only keys for the permissions that were requested. Each value is boolean | undefined.