# Permissions Registration

> App registration with Meta AI and device permission flows

- Skill: `facebook/permissions-registration` (Agent Skill)
- Install (CLI): `npx skillmds@latest add facebook/permissions-registration`
- Raw SKILL.md: https://api.skillmd.com/api/skills/facebook/permissions-registration/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: facebook (https://skillmd.com/u/facebook)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/facebook/permissions-registration

---


# Permissions & Registration (Android)

Register your app with Meta AI, then request the device permissions it needs.

The DAT SDK separates two steps:

1. **Registration**: The user connects your app to Meta AI.
2. **Device permissions**: After registration, your app requests capabilities such as camera access.

Both flows depend on the Meta AI app being installed on the phone.

## Start registration

```kotlin
Wearables.startRegistration(activity)
```

Observe registration state:

```kotlin
lifecycleScope.launch {
    Wearables.registrationState.collect { state ->
        // Update your registration UI
    }
}
```

To unregister:

```kotlin
Wearables.startUnregistration(activity)
```

## Check permission status

`checkPermissionStatus(...)` is a suspend API that returns a `DatResult`.

```kotlin
lifecycleScope.launch {
    Wearables.checkPermissionStatus(Permission.CAMERA)
        .onSuccess { status ->
            if (status == PermissionStatus.Granted) {
                startStreaming()
            }
        }
        .onFailure { error, _ ->
            showPermissionError(error.description)
        }
}
```

## Request a permission

Use `Wearables.RequestPermissionContract()` with the Activity Result API:

```kotlin
private val permissionLauncher =
    registerForActivityResult(Wearables.RequestPermissionContract()) { result ->
        result.onSuccess { status ->
            if (status == PermissionStatus.Granted) {
                startStreaming()
            }
        }.onFailure { error, _ ->
            showPermissionError(error.description)
        }
    }

fun requestCameraPermission() {
    permissionLauncher.launch(Permission.CAMERA)
}
```

Users can allow once or allow always through the Meta AI flow.

## Developer Mode vs production

| Mode | Registration behavior |
|------|------------------------|
| Developer Mode | Use `mwdat_application_id = 0` and `mwdat_client_token = 0` manifest placeholders for local development |
| Production | Use the application ID and client token assigned in the Wearables Developer Center |

For development builds, enable Developer Mode in the Meta AI app before testing registration and permissions.

## Prerequisites

- Internet connection for registration
- Meta AI app installed on the phone
- Callback URI scheme configured in `AndroidManifest.xml`
- Bluetooth permission granted on Android

## Links

- [Permissions documentation](https://wearables.developer.meta.com/docs/permissions-requests)
- [Manage projects](https://wearables.developer.meta.com/docs/manage-projects)
- [Android integration guide](https://wearables.developer.meta.com/docs/build-integration-android)

