Ray-Ban Meta : le SDK DAT tel qu'il est réellement intégré

flutter_meta_wearables_dat 0.9.1 et app_links remplacent les
dépendances « à décommenter quand publiées ». Le SDK natif vit sur
GitHub Packages : sans PAT read:packages dans local.properties, le
build tombe en 401 — et un token expiré peut passer inaperçu, Gradle
servant son cache.

Note ce que le SDK ne donne pas (ni micro, ni haut-parleur, ni bouton :
le vocal passe par le routage Bluetooth) et pourquoi iOS n'est pas
activé.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Thomas Fransolet 2026-09-10 12:05:06 +02:00
parent 2824ca63c1
commit 4206fde7f0

View File

@ -25,13 +25,33 @@ L'architecture existante (AssistantService, QR scanner, beacons, géoloc) est **
| **ElevenLabs** | Synthèse vocale TTS | https://elevenlabs.io — tier gratuit ou payant selon volume | | **ElevenLabs** | Synthèse vocale TTS | https://elevenlabs.io — tier gratuit ou payant selon volume |
### SDK Flutter (developer preview) ### SDK Flutter (developer preview)
Les packages Meta SDK doivent être ajoutés à `pubspec.yaml` quand publiés :
```yaml ```yaml
# Décommenter quand disponibles : flutter_meta_wearables_dat: ^0.9.1 # Android API 29+ et iOS 17.2+ — SDK DAT 0.9.0
# meta_wearables_dat: any # Android app_links: ^6.4.1 # retour du deep link Meta AI → handleUrl()
# meta_wearables: any # iOS (ChunkyTofuStudios)
``` ```
Vérifier les versions actuelles sur pub.dev : `meta_wearables_dat`, `meta_wearables`.
Le SDK natif est publié sur **GitHub Packages**, pas sur Maven Central. Il faut un
PAT GitHub avec le scope `read:packages`, dans `android/local.properties` :
```properties
github_token=ghp_xxxx
```
Sans lui, le build échoue en `401 Unauthorized` sur `maven.pkg.github.com`. Un build
peut sembler passer alors que le token est expiré : Gradle sert les artefacts depuis
son cache local. Vérifier le token, pas le build.
**iOS n'est pas activé** malgré le support du package. Le coût réel :
- deployment target à **17.2** pour toute l'app visiteur (Podfile est à 12.0)
- dictionnaire `MWDAT` dans Info.plist (`MetaAppID`, `ClientToken`, `TeamID`) — le
mode développeur `"0"` d'Android ne suffit pas
- choix d'un transport caméra : Wi-Fi (entitlements Hotspot Configuration + Wi-Fi
Information, `NSLocalNetworkUsageDescription`, +10 s à la 1re connexion) ou
Bluetooth Classic (`UISupportedExternalAccessoryProtocols`, bande passante moindre)
- la publication publique reste limitée aux partenaires Meta sous developer preview
Le SDK DAT n'expose **ni micro, ni haut-parleur, ni bouton** des lunettes. Tout le
pipeline vocal passe hors SDK (routing Bluetooth HFP/A2DP via `AudioRoutingChannel`).
--- ---
@ -130,7 +150,7 @@ flutter run --dart-define=ELEVENLABS_API_KEY=xxx --dart-define=PICOVOICE_ACCESS_
Lunettes Ray-Ban Meta Lunettes Ray-Ban Meta
│ Bluetooth (HFP mic, A2DP speakers, camera stream, button) │ Bluetooth (HFP mic, A2DP speakers, camera stream, button)
[MetaGlassesService] ← SDK DAT lifecycle + photo capture button [MetaGlassesService] ← SDK DAT lifecycle + capture photo
├── [WakeWordService] ← Porcupine détecte "Hey MyVisit" (on-device) ├── [WakeWordService] ← Porcupine détecte "Hey MyVisit" (on-device)
│ └── speech_to_text ← transcrit la commande après wake word │ └── speech_to_text ← transcrit la commande après wake word
@ -173,9 +193,10 @@ Le wake word fonctionne en permanence en background (Foreground Service sur Andr
### 2. Scanner QR via lunettes ### 2. Scanner QR via lunettes
**Déclencheurs :** **Déclencheur :** commande vocale "Hey MyVisit, scanne ce QR"
- Pression courte sur le bouton hardware des lunettes
- Commande vocale "Hey MyVisit, scanne ce QR" ⚠️ Le bouton hardware des lunettes n'est **pas** un déclencheur : le SDK DAT ne
l'expose pas, et rien n'est implémenté pour lui côté app.
**Fonctionnement :** **Fonctionnement :**
1. Les lunettes capturent une photo 1. Les lunettes capturent une photo