--- name: permissions-registration description: App registration with Meta AI, camera permission flows --- # Permissions & Registration (iOS) Register your app with Meta AI, then request the device permissions it needs. The DAT SDK separates two concepts: 1. **Registration** — Your app registers with Meta AI to become a permitted integration 2. **Device permissions** — After registration, request specific device permissions (e.g., camera) All permission grants occur through the Meta AI companion app. ## Registration flow ### Start registration ```swift func startRegistration() async throws { try await Wearables.shared.startRegistration() } ``` This opens the Meta AI app where the user approves your app. Meta AI then calls back via your URL scheme. ### Handle the callback ```swift .onOpenURL { url in Task { _ = try? await Wearables.shared.handleUrl(url) } } ``` ### Observe registration state ```swift Task { for await state in Wearables.shared.registrationStateStream() { switch state { case .registered: // App is registered, can request permissions case .unavailable: // Registration is unavailable case .available: // Ready to register case .registering: // Registration in progress } } } ``` ### Unregister ```swift func startUnregistration() async throws { try await Wearables.shared.startUnregistration() } ``` ## Camera permissions ### Check permission status ```swift let status = try await Wearables.shared.checkPermissionStatus(.camera) ``` ### Request permission ```swift let status = try await Wearables.shared.requestPermission(.camera) ``` The SDK opens Meta AI for the user to grant access. Users can choose: - **Allow once** — temporary, single-session grant - **Allow always** — persistent grant ## Multi-device behavior Users can link multiple glasses to Meta AI. The SDK handles this transparently: - Permission granted on **any** linked device means your app has access - You don't need to track which device has permissions - If all devices disconnect, permissions become unavailable ## Developer Mode vs Production | Mode | Registration behavior | |------|----------------------| | Developer Mode | Registration always allowed (use `MetaAppID` = `0`) | | Production | Users must be in proper release channel | For production, get your `APPLICATION_ID` from the [Wearables Developer Center](https://wearables.developer.meta.com/). ## Prerequisites - Registration requires an internet connection - Meta AI companion app must be installed - For Developer Mode: enable in Meta AI > Settings > Your glasses > Developer Mode ## Links - [Permissions documentation](https://wearables.developer.meta.com/docs/permissions-requests) - [Getting started guide](https://wearables.developer.meta.com/docs/getting-started-toolkit) - [Manage projects](https://wearables.developer.meta.com/docs/manage-projects)