# Meta Wearables Dat

> Load when the user is integrating Meta's Wearables Device Access Toolkit into an iOS or Android app to receive camera, microphone, or sensor streams from Ray-Ban Meta or Oakley glasses — wiring registration, permissions, streaming, the Mock Device Kit, or solving "the glasses don't appear in my device list." Don't load for MRBD Web Apps — that's meta-display-webapps.

- Skill: `hktitan/meta-wearables-dat` (Agent Skill, multi-file: 14 files)
- Install (CLI): `npx skillmds@latest add hktitan/meta-wearables-dat`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hktitan/meta-wearables-dat/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: HKTITAN (https://skillmd.com/u/hktitan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hktitan/meta-wearables-dat

---


# Meta Wearables Device Access Toolkit

DAT is the **glasses-as-peripheral** path for Meta wearables. Your code runs in an iOS or Android app; the glasses contribute camera, mic, and sensor streams over Bluetooth via the Meta AI app's connection. This skill covers everything from SPM/Gradle setup through release-channel distribution.

If the target is Meta Ray-Ban Display and the value is a HUD experience, you almost certainly want Web Apps instead — load [[../meta-display-webapps/SKILL]].

## When to load

Triggers:
- "Ray-Ban Meta SDK"
- "Device Access Toolkit"
- "Stream camera from Meta glasses to my iOS / Android app"
- "Mock Device Kit"
- "Glasses don't show up in my device list"
- "DAT app store"
- "MWDAT pod / Gradle"

Don't load for:
- HUD / display-rendering questions on MRBD — those are [[../meta-display-webapps/SKILL]].
- Choosing between paths in the first place — [[../meta-wearables/SKILL]].

## Decide first

The architecture decisions before code:

1. **Platforms** — iOS, Android, or both? The SDKs are parallel but not identical.
2. **What streams** — camera (video + photo), microphone, both? Each has its own permission and budget.
3. **Distribution path** — closed-tester release channel today (up to 100), or wait for broader 2026? See [[../meta-wearables/references/distribution-2026]] and [[references/app-store-blockers]].
4. **Hardware availability** — do you have glasses for testing, or do you start with the [[references/mock-device-kit]]?

## Map of content

### Project setup

- [[references/ios-swift-setup]] — Swift Package Manager, Info.plist keys, MWDAT modules.
- [[references/android-kotlin-setup]] — Gradle through GitHub Packages, manifest entries, `local.properties`.

### Connection model

- [[references/registration-flow]] — `startRegistration`, the Meta AI deep link, devices stream.
- [[references/permissions-model]] — camera + microphone permissions, "allow once" vs "always", multi-device behaviour.
- [[references/session-lifecycle]] — `RUNNING`, `PAUSED`, `STOPPED` states and when each fires.

### Streams

- [[references/camera-streaming]] — `StreamConfiguration` qualities, frame rates, photo capture.
- [[references/mic-and-speakers]] — HFP at 8 kHz mono, A2DP for output, the platform audio session.
- [[references/bandwidth-ladder]] — automatic quality adaptation under network pressure.

### Build and test

- [[references/mock-device-kit]] — phone-camera-as-glasses for hardware-free dev.
- [[references/error-handling]] — `Result` types and graceful failure modes.
- [[references/threading-model]] — coroutines, Combine, and where async actually runs.

### Shipping

- [[references/app-store-blockers]] — why DAT iOS can't hit the App Store yet (as of 2026-05).
- [[references/release-channels]] — up to 100 testers, the distribution flow.

## Verify

Before claiming a DAT integration is shippable:

- [ ] Info.plist (iOS) or Manifest (Android) carries the right `MWDAT` keys and external-accessory entries.
- [ ] Bluetooth and camera usage descriptions are present and human-readable.
- [ ] Registration succeeds (`startRegistration` returns success after the Meta AI deep link round-trip).
- [ ] Camera permission is requested and the user grants it; permission status is checked before adding a stream.
- [ ] At least one `StreamConfiguration` (recommend `MEDIUM` + 24 fps to start) successfully transitions through `STARTING` → `STREAMING`.
- [ ] Disconnect scenarios are handled: hinges closed, glasses removed, Bluetooth drop, app backgrounded.
- [ ] Mock Device Kit is integrated for tests that don't need real hardware.
- [ ] Distribution path is decided (release channel today; App Store gated to 2026).

## Smoke test

If this skill loaded correctly, the agent should answer:

1. Why can't a DAT iOS app reach the App Store today? (Expected: MFi program and privacy-manifest requirements; cites [[references/app-store-blockers]].)
2. What's the HFP audio format the glasses' microphone uses? (Expected: 8 kHz mono with beamforming; cites [[references/mic-and-speakers]].)
3. What happens to a streaming session when the user closes the glasses hinges? (Expected: `STOPPED`, with the connection lost; the session does not auto-restart on re-opening; cites [[references/session-lifecycle]].)
4. Can my CI run DAT tests without physical glasses? (Expected: yes, via [[references/mock-device-kit]] in debug builds; configure phone camera as the mock feed.)

## Sibling skills

- [[../meta-wearables/SKILL]] — router and capability matrix.
- [[../meta-display-webapps/SKILL]] — Web Apps path for MRBD.
- [[../meta-display-design/SKILL]] — design patterns; mostly relevant to MRBD but applies to DAT app UI as well.

## Sources

- DAT overview — <https://wearables.developer.meta.com/docs/develop/dat>
- iOS integration — <https://wearables.developer.meta.com/docs/develop/dat/build-integration-ios/>
- Android integration — <https://wearables.developer.meta.com/docs/develop/dat/build-integration-android/>
- Lifecycle events — <https://wearables.developer.meta.com/docs/develop/dat/lifecycle-events/>
- Permissions — <https://wearables.developer.meta.com/docs/develop/dat/permissions-requests/>
- Microphones and speakers — <https://wearables.developer.meta.com/docs/develop/dat/microphones-and-speakers/>
- Mock Device Kit — <https://wearables.developer.meta.com/docs/develop/dat/mock-device-kit/>
- Getting started — <https://wearables.developer.meta.com/docs/getting-started-toolkit/>
- iOS DAT GitHub — <https://github.com/facebook/meta-wearables-dat-ios>
- Android DAT GitHub — <https://github.com/facebook/meta-wearables-dat-android>

