Step 1: Install The SDK
- React Native / Expo
- Android
- iOS
app.json; in TypeScript-configured apps it is usually the root app.config.ts. Merge these keys into the existing top-level expo object instead of creating a second config file or replacing unrelated settings:Step 2: Add Permissions
- React Native / Expo
- Android
- iOS
Configure permissions in the same root Expo app config. If your app already has
android.permissions or ios.infoPlist, append or merge these values:Step 3: Connect And Read Status
- React Native / Expo
- Android
- iOS
onResults is the live UI path while scanning is in progress. The returned devices array is the final list after the scan timeout/completion, which is the right place for final selection, fallback behavior, or “connect to this device” logic. In rooms with multiple pairs of glasses, present an explicit picker instead of auto-connecting to the first nearby device.Use Device.id as the stable app-facing key for scan rows, selected devices, and persisted default devices. Do not parse it for model, name, or address information; use the typed model, name, address / identifier, and rssi fields instead. Android commonly uses a Bluetooth address when available, iOS commonly uses a CoreBluetooth identifier when available, and the SDK falls back to model:name when no platform identifier is available.Device.rssi is optional. A device can appear in scan results before the platform reports RSSI, so picker UI should handle undefined and avoid reordering rows just because RSSI metadata arrives later.In React components, use useMentraBluetooth() to render the current connection and status state:Next Steps
Update Mentra Live
Match the glasses software release to your SDK version.
Run Example Apps
Start from complete Android, iOS, and React Native examples.
API Reference
Learn the lifecycle, commands, status fields, and events.

