Ho un sistema integrato che esegue un server GATT a cui sto cercando di connettermi tramite Android. L'attività è semplice: connettersi al server GATT, navigare caratteristiche e convalidare capacità di lettura/scrittura. Il problema è quando provo a connettermi con un'app Android, esso tenta di accoppiare con una "Passkey" anziché con "Just Works" [https://developer.bluetooth.org/TechnologyOverview/Pages/LE-Security.aspx]. Questo non è accettabile in quanto il mio dispositivo incorporato non ha alcun metodo per visualizzare una chiave per l'utente da utilizzare per l'associazione. Quindi il metodo di connessione deve essere Just Works.Come forzare l'accoppiamento Bluetooth LE "Funziona solo" Pairing in Android
Ho provato numerose app dal Play Store e tutte tentano solo l'accoppiamento con Passkey. Ma questo è l'attuale con cui sto lavorando: https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner
Ho questo funzionamento utilizzando l'applicazione LightBlue (supportato in OS X e iOS). Quindi so che la mia periferica (server GATT) funziona: pubblicità, collegabile, caratteristica accessibile, ecc.
Come impongo ad Android di utilizzare Just Works anziché l'abbinamento Passkey? C'è una configurazione periferica che mi manca?
Grazie
Durante la fase di autenticazione Bluetooth, il dispositivo incorporato deve pubblicizzare una capacità IO appropriata. In particolare dovrebbe probabilmente essere la pubblicità di NoInpiutOutput. Come farlo dipende da ciò che stai utilizzando sul tuo sistema embedded. Se per esempio si usa Linux, l'agente fornito con bluez può essere eseguito così: test-agent -c NoInputNoOutput – kaylum
@kaylum Che cos'è ** test-agent **, è un comando? –
@Igentore test di IgorGanapolsky è il codice agente di esempio fornito con bluez. È stato rinominato 'simple-agent'. Codice sorgente [qui] (https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/simple-agent) – kaylum