meta_wearables_dat

Flutter plugin for Meta’s Wearables Device Access Toolkit (DAT).

Provides access to registration, device state, camera streaming, and photo capture from Meta AI glasses.

⚠️ Android only
This plugin currently supports Android only. iOS is currently not yet supported.


Features

  • Initialize Wearables SDK
  • Registration / unregistration via Meta AI app
  • Observe registration state and available devices
  • Request Wearables camera permission
  • Start / stop camera streaming
  • Receive live video frames in Flutter
  • Capture and share photos from an active stream

Requirements

Platform

  • Android 10+
  • Flutter v3.3+
  • GitHub account (for Meta SDK access)

Meta AI / Glasses

  • Ray-Ban Meta (Gen 1 or 2) or Oakley Meta HSTN
  • Meta AI app v247+
  • Glasses firmware v20+
  • Developer Mode enabled on glasses

Enable Developer Mode

  • Open Meta AI app
  • Go to Settings → App Info
  • Tap App version five times
  • Select the toggle to enable Developer Mode.
  • Click Enable to confirm.

Installation

dependencies:
  meta_wearables_dat: ^0.1.2

Android Setup

Permissions

Add to AndroidManifest.xml:

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

Wearables Application ID

Inside <application>:

<meta-data
    android:name="com.meta.wearable.mwdat.APPLICATION_ID"
    android:value="0" />

FileProvider (photo sharing)

Inside <application>:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

Create:

android/app/src/main/res/xml/file_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <cache-path name="cache" path="." />
</paths>

Meta SDK Dependency (GitHub Packages)

The Meta Wearables SDK is hosted on GitHub Packages.

Create a GitHub token

  • Token type: Personal access token (classic)
  • Required scope: read:packages

Instructions:
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic


Provide the token

Option A – environment variable

export GITHUB_TOKEN=your_token_here

Option B – local.properties (recommended)

github_token=your_token_here

Add repository

In settings.gradle.kts:

maven {
    url = uri("https://maven.pkg.github.com/facebook/meta-wearables-dat-android")
    credentials {
        username = ""
        password = System.getenv("GITHUB_TOKEN")
            ?: localProperties.getProperty("github_token")
    }
}

Usage

Initialize

await Wearables.instance.initialize();

Registration

await Wearables.instance.startRegistration();
await Wearables.instance.startUnregistration();
Wearables.instance.registrationStateStream.listen((state) {
  print(state.state);
});

Camera Permission

final status = await Wearables.instance.checkCameraPermission();
if (status != 'Granted') {
  await Wearables.instance.requestCameraPermission();
}

Streaming

await Wearables.instance.startStream(
  videoQuality: 'MEDIUM',
  frameRate: 24,
);

Wearables.instance.videoFramesStream.listen((bytes) {
  // JPEG frames (Uint8List)
});
await Wearables.instance.stopStream();

Example

A complete example app is included.

cd example
flutter run

Platform Support

Platform Supported
Android
iOS

License

This project is licensed under the BSD 3-Clause License.
See the LICENSE file for details.

Meta Wearables Device Access Toolkit is subject to Meta’s own terms.