--- name: getting-started description: SDK setup, Gradle integration, AndroidManifest configuration, and first connection to Meta glasses --- # Getting Started with DAT SDK (Android) Set up the Meta Wearables Device Access Toolkit in an Android app. ## Prerequisites - Android Studio Flamingo or newer - Android 10+ test device with the Meta AI app installed - Supported Meta glasses or MockDeviceKit for local testing - Developer Mode enabled in the Meta AI app for development builds - GitHub personal access token with `read:packages` scope ## Step 1: Add the Maven repository In `settings.gradle.kts`: ```kotlin val localProperties = Properties().apply { val localPropertiesPath = rootDir.toPath() / "local.properties" if (localPropertiesPath.exists()) { load(localPropertiesPath.inputStream()) } } dependencyResolutionManagement { repositories { google() mavenCentral() maven { url = uri("https://maven.pkg.github.com/facebook/meta-wearables-dat-android") credentials { username = "" password = System.getenv("GITHUB_TOKEN") ?: localProperties.getProperty("github_token") } } } } ``` ## Step 2: Declare dependencies In `libs.versions.toml`: ```toml [versions] mwdat = "0.7.0" [libraries] mwdat-core = { group = "com.meta.wearable", name = "mwdat-core", version.ref = "mwdat" } mwdat-camera = { group = "com.meta.wearable", name = "mwdat-camera", version.ref = "mwdat" } mwdat-mockdevice = { group = "com.meta.wearable", name = "mwdat-mockdevice", version.ref = "mwdat" } ``` In `app/build.gradle.kts`: ```kotlin dependencies { implementation(libs.mwdat.core) implementation(libs.mwdat.camera) implementation(libs.mwdat.mockdevice) } ``` ## Step 3: Configure `AndroidManifest.xml` ```xml ``` Use `0` for `APPLICATION_ID` in Developer Mode. Replace `myexampleapp` with your app's URL scheme. ## Step 4: Initialize the SDK ```kotlin import com.meta.wearable.dat.core.Wearables class MyApplication : Application() { override fun onCreate() { super.onCreate() Wearables.initialize(this) .onFailure { error, _ -> error("Failed to initialize DAT: ${error.description}") } } } ``` ## Step 5: Register and create a session ```kotlin import com.meta.wearable.dat.core.Wearables import com.meta.wearable.dat.core.selectors.AutoDeviceSelector fun connect(activity: Activity) { Wearables.startRegistration(activity) } fun startSession() { val session = Wearables.createSession(AutoDeviceSelector()).getOrElse { error -> throw IllegalStateException(error.description) } session.start() } ``` Observe registration and available devices: ```kotlin lifecycleScope.launch { Wearables.registrationState.collect { state -> // Update registration UI } } lifecycleScope.launch { Wearables.devices.collect { devices -> // Update the device list } } ``` ## Step 6: Add camera streaming ```kotlin import com.meta.wearable.dat.camera.addStream import com.meta.wearable.dat.camera.types.StreamConfiguration import com.meta.wearable.dat.camera.types.VideoQuality val stream = session.addStream( StreamConfiguration(videoQuality = VideoQuality.MEDIUM, frameRate = 24), ).getOrElse { error -> throw IllegalStateException(error.description) } stream.start().onFailure { error, _ -> throw IllegalStateException(error.description) } ``` ## Next steps - [Camera Streaming](camera-streaming.md) — Stream capability, video frames, photo capture - [MockDevice Testing](mockdevice-testing.md) — Test without hardware - [Session Lifecycle](session-lifecycle.md) — Handle session and stream state changes - [Permissions](permissions-registration.md) — Registration and permission flows - [Full Android API reference](https://wearables.developer.meta.com/docs/reference/android/dat/0.7)