2.1 KiB
title, area, tags, flag, src
| title | area | tags | flag | src |
|---|---|---|---|---|
| iBeacons sur device réel — Android <em>et</em> iOS | visitapp | §9 | warn | Nouveau 28/08 · device requis | test-plan.md §9 · todo-features.md — Beacons / géofencing |
Les 5 cas du §9 sont écrits et aucun n'est coché : le déclenchement par balise n'a jamais été observé sur un téléphone. Vendu dans Pro et Premium (« Offline + beacons BLE » sur la landing), donc à prouver avant la première vente, pas après. Exige du matériel en main — d'où la carte de sourcing en « Planifié ».
⚠️ Le piège est iOS, et il est dans le code. geo_beacon_trigger_service.dart:148-155 ne pose une région filtrée que sur iOS, avec un proximityUUID en dur (FDA50693-A4E2-4FB1-AFCF-C6EB07647825) ; Android scanne Region(identifier: 'GlassesBeacon') sans filtre. Conséquence : une balise réglée sur un autre UUID marche sur Android et reste invisible sur iOS — et le test passerait sur le seul device qu'on a sous la main. Soit les balises commandées émettent cet UUID, soit il devient configurable. À trancher avec le sourcing, pas pendant le test.
⚠️ Deux chemins de scan à jouer séparément, ils ne partagent pas leur code : configuration_page.dart:197-205 (notification beaconFound) et geo_beacon_trigger_service.dart:166-189 (déclenchement proactif de l'assistant). ⚠️ Et configuration_page.dart:43 dit int meterToBeacon = 100; // 15 meters — le commentaire et la valeur se contredisent, et Section.meterZoneGPS, configurable par section dans manager-app, est ignoré. Un test à 100 m ne mesure rien : la distance de déclenchement est la seule chose que ce chapitre doit établir.
À mesurer sur place, pas au bureau : portée réelle derrière un mur, temps entre l'entrée en zone et la notification, et absence de spam quand on stationne devant un POI (le cooldown).