facebook/meta-wearables-dat-android-dat-conventions
Kotlin patterns, DatResult, session and capability conventions for DAT SDK Android development
npx skills add https://github.com/facebook/meta-wearables-dat-android --skill dat-conventions
| Task | Command |
|------|---------|
| Build app | ./gradlew assembleDebug |
| Run tests | ./gradlew test |
| Install app | ./gradlew installDebug |
| Lint app | ./gradlew lint |
The SDK is organized into four public modules:
Wearables.initialize(context)
val session = Wearables.createSession(AutoDeviceSelector()).getOrElse { error ->
throw IllegalStateException(error.description)
}
session.start()
val camera = session.addCamera(StreamConfiguration()).getOrElse { error ->
throw IllegalStateException(error.description)
}
camera.stream.start().getOrElse { error ->
throw IllegalStateException(error.description)
}
DatResult<T, E> for typed success and failure handlingStateFlow and FlowSession first, then attach capabilities such as Stream or DisplayWearables.checkPermissionStatus(Permission.CAMERA)
.onSuccess { status -> /* handle status */ }
.onFailure { error, _ -> /* handle error */ }
Avoid getOrThrow() in user-facing samples. Surface typed errors from DatResult instead.
| Type | Purpose | Example |
|------|---------|---------|
| Session | Device connection lifecycle | Wearables.createSession(...) |
| Stream | Camera capability on a session | session.addCamera(...) → camera.stream |
| Display | Display capability on a session | session.addDisplay(...) |
| *Selector | Device targeting | AutoDeviceSelector |
| *Error | Typed failure surface | SessionError, StreamError |
Wearables — SDK entry pointSession — lifecycle for an interaction with a linked deviceStream — camera capability attached to a sessionDisplay — display capability attached to a sessionStreamConfiguration — video quality and frame rate configurationMockDeviceKit — simulated device environment for testingIf your editor supports remote MCP servers, connect https://mcp.developer.meta.com/wearables and use search_dat_docs for current DAT setup, session lifecycle, camera streaming, MockDeviceKit, permissions, and exact API symbols. This public docs server does not require authentication; do not configure tokens, OAuth, or custom authorization headers for it.
Use llms.txt when your tool only supports static reference context.
val mockDeviceKit = MockDeviceKit.getInstance(context)
mockDeviceKit.enable()
val device = mockDeviceKit.pairGlasses(GlassesModel.RAYBAN_META).getOrThrow()
Use MockDeviceKit to drive registration, device availability, streaming media, and permission scenarios without physical hardware.
Wearables.initialize(context)DatResult failures from createSession, start, addCamera, addDisplay, or capturePhotoTake facebook/meta-wearables-dat-android-dat-conventions from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.