getting-started

tarafından facebook

SDK kurulumu, Gradle entegrasyonu, AndroidManifest yapılandırması ve Meta gözlüklere ilk bağlantı

npx skills add https://github.com/facebook/meta-wearables-dat-android --skill getting-started

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

The SDK is published to Maven Central under the com.meta.wearable group, so the mavenCentral() repository already declared in settings.gradle.kts is all that is needed. No access token is required.

Step 1: Declare dependencies

In libs.versions.toml:

[versions]
mwdat = "1.0.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-display = { group = "com.meta.wearable", name = "mwdat-display", version.ref = "mwdat" }
mwdat-mockdevice = { group = "com.meta.wearable", name = "mwdat-mockdevice", version.ref = "mwdat" }

In app/build.gradle.kts:

android {
    defaultConfig {
        manifestPlaceholders["mwdat_application_id"] = "0"
        manifestPlaceholders["mwdat_client_token"] = "0"
    }
}

dependencies {
    implementation(libs.mwdat.core)
    implementation(libs.mwdat.camera)
    implementation(libs.mwdat.display)
    implementation(libs.mwdat.mockdevice)
}

Step 2: Configure AndroidManifest.xml

<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application ...>
        <meta-data
            android:name="com.meta.wearable.mwdat.APPLICATION_ID"
            android:value="${mwdat_application_id}" />
        <meta-data
            android:name="com.meta.wearable.mwdat.CLIENT_TOKEN"
            android:value="${mwdat_client_token}" />

        <activity android:name=".MainActivity" ...>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="myexampleapp" />
            </intent-filter>
        </activity>
    </application>
</manifest>

APPLICATION_ID and CLIENT_TOKEN are used for app attestation and can be found in the Wearables Developer Center. In Developer Mode, attestation is not used, so the manifest placeholders can both be 0. For production, replace both placeholders with the credentials for your Wearables Developer Center app. Replace myexampleapp with your app's URL scheme.

Step 3: Initialize the SDK

import android.util.Log
import com.meta.wearable.dat.core.Wearables

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        Wearables.initialize(this)
            .onFailure { error, _ ->
                Log.e("DATWearables", "Failed to initialize DAT: ${error.description}")
            }
    }
}

Step 4: Register and create a session

Registration must complete before a session can start. Observe Wearables.registrationState and wait for RegistrationState.REGISTERED.

import com.meta.wearable.dat.core.Wearables
import com.meta.wearable.dat.core.selectors.AutoDeviceSelector
import com.meta.wearable.dat.core.session.DeviceSession
import com.meta.wearable.dat.core.session.DeviceSessionState

fun connect(activity: Activity) {
    Wearables.startRegistration(activity)
}

fun startSession() {
    Wearables.createSession(AutoDeviceSelector()).fold(
        onSuccess = { session ->
            lifecycleScope.launch {
                session.errors.collect { error -> showError(error.description) }
            }
            lifecycleScope.launch {
                session.state.collect { state ->
                    if (state == DeviceSessionState.STARTED) {
                        addCameraStreaming(session)
                    }
                }
            }
            // Fire-and-forget: returns Unit and reports failures through session.errors.
            session.start()
        },
        onFailure = { error, _ -> showError(error.description) },
    )
}

Observe registration and available devices:

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

lifecycleScope.launch {
    Wearables.devices.collect { devices ->
        // Update the device list
    }
}

Step 5: Add camera streaming

Call this only once the session reports DeviceSessionState.STARTED; adding a capability earlier fails with DeviceSessionError.SESSION_IDLE.

import com.meta.wearable.dat.camera.addCamera
import com.meta.wearable.dat.camera.types.StreamConfiguration
import com.meta.wearable.dat.camera.types.VideoQuality

fun addCameraStreaming(session: DeviceSession) {
    session.addCamera(
        StreamConfiguration(videoQuality = VideoQuality.MEDIUM, frameRate = 24),
    ).fold(
        onSuccess = { camera ->
            camera.stream.start().onFailure { error, _ -> showError(error.description) }
        },
        onFailure = { error, _ -> showError(error.description) },
    )
}

Camera access also needs the DAT camera permission; see the permissions-registration skill.

Next steps

  • camera-streaming — Stream capability, video frames, photo capture
  • mockdevice-testing — Test without hardware
  • session-lifecycle — Handle session and stream state changes
  • permissions-registration — Registration and permission flows
  • display-access — Render content on Meta Ray-Ban Display glasses
  • Full Android API reference

facebook tarafından daha fazla skill

gc-safe-coding
facebook
Tam açıklama ve gerekçe için doc/GCSafeCoding.md dosyasına bakın.
app-review-prep
facebook
Meta uygulamasını App Review için hazırlayın — mevcut durumu, bekleyen gereksinimleri, verilen ayrıcalıkları ve gönderim geçmişini kontrol eder. Bir uygulama göndermeden önce kullanın…
api-health
facebook
Bir Meta uygulaması için API sağlığını izleyin — hız sınırlarını, çağrı hacmini ve API kullanımdan kaldırmalarını kontrol edin. Azaltmayı teşhis etmek, kapasite planlamak veya API sürümüne hazırlanmak için kullanın…
debug-webhooks
facebook
Meta uygulaması için webhook sorunlarını giderin — aktif abonelikleri inceleyin, yanlış yapılandırmayı tespit edin ve teslimatı doğrulamak için test yükleri gönderin. Şu durumlarda kullanın…
api-integration
facebook
Bir geliştiriciyi sıfırdan Meta API entegrasyonu kurma konusunda yönlendirir — doğru API'leri keşfeder, kurulum kılavuzlarını getirir, kimlik doğrulama gereksinimlerini kontrol eder,…
webhook-setup
facebook
Bir Meta uygulaması için webhook'ları uçtan uca kurun — mevcut konuları keşfedin, alanlara abone olun ve bir test payload'ı ile doğrulayın. Webhook yapılandırırken kullanın…
test-ui
facebook
Test UI sistemini (PanelUI, ScreenSpace) poke örneğine karşı iwsdk CLI kullanarak test edin.
flags
facebook
React sürüm kanalları arasında özellik bayrağı durumlarını inceleyin ve karşılaştırın. Tüm bayrakları kanallar arasında (www, www-modern, canary, next, experimental, rn varyantları) görüntüleyin veya --diff ile belirli kanalları karşılaştırın. Çıktı biçimleri varsayılan tablo görünümü, CSV dışa aktarma ve temizlik durumu gruplandırmasını içerir. Bayrak durumları sembollerle gösterilir: etkin (✅), devre dışı (❌), varyant testi (🧪), yalnızca profil oluşturma (📊). Yaygın tuzak: __VARIANT__ bayrakları www üzerinde her iki durumda da test edilir; anlamlı farklılı