A Flutter package for controlling XOS smart glasses via Bluetooth Low Energy (BLE).
- Device Discovery — Scan for nearby XOS glasses devices
- Pairing & Connection — Pair, connect, auto-reconnect with handshake/heartbeat
- Device Info — Battery, firmware version, IP address, WiFi status
- Display Control — Brightness, sleep timeout, viewport, RGB ratio
- File Transfer — Browse, download, and upload files (BLE + WiFi Direct)
- Media Control — Photo capture, video recording, camera control
- AI Configuration — Voice AI, visual AI, quick center trigger words
- Translation — Real-time speech translation
- Data Forwarding — GPS, notifications, navigation, reminders
- Teleprompter — Script sync with scroll tracking
- Casting — DLNA/RTSP media casting and screen mirroring
- System — OTA restart, WiFi management, Bluetooth tethering, HID control
Add to your pubspec.yaml:
dependencies:
xos_glasses_sdk: ^0.0.1Add these to your AndroidManifest.xml:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />Add to Info.plist:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Needed to connect to XOS smart glasses</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Needed to communicate with XOS smart glasses</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Needed to discover nearby XOS smart glasses</string>import 'package:xos_glasses_sdk/xos_glasses_sdk.dart';
final sdk = await XOSGlassesSDK.init(
config: GlassesSDKConfig(enableDebugLog: true),
);
// Discover devices
sdk.onDeviceDiscovered.listen((device) {
print('Found: ${device.name} (${device.deviceId})');
});
await sdk.startDiscovery();
// Connect
await sdk.connect('device_mac_address');
// Control
await sdk.setBrightness(80);
await sdk.capturePhoto();
await sdk.sendGPS(lat: 30.5, lng: 120.2);
// Listen for updates
sdk.onConnectionStateChanged.listen((state) {
print('Connection: ${state.state}');
});
sdk.onDeviceInfoChanged.listen((info) {
print('Battery: ${info.batteryLevel}%');
});
// Clean up
sdk.dispose();XOSGlassesSDK (public API)
├── ConnectionManager — BLE scan/connect/handshake/heartbeat/reconnect
├── CommandTransmitter — Command encoding, short protocol, chunked send
├── FileTransferChannel — BLE + WiFi Direct dual-channel file transfer
├── MediaController — Camera, recording, casting
├── AIManager — AI config sync, quick center
├── ForwardController — GPS, notifications, navigation, translation
└── SettingsManager — Display, WiFi, Bluetooth, system
- Quick Start Guide (中文) | English
- API Reference (中文) | English
- BLE Protocol Specification (中文) | English
MIT