Mam wbudowany system z serwerem GATT, z którym próbuję się połączyć za pośrednictwem systemu Android. Zadanie jest proste: połączyć się z serwerem GATT, nawigować właściwościami i weryfikować możliwości odczytu/zapisu. Problem polega na tym, że gdy próbuję połączyć się z aplikacją na Androida, próbuje się sparować z "Kluczem dostępu" zamiast z "Tylko działa" [https://developer.bluetooth.org/TechnologyOverview/Pages/LE-Security.aspx]. Jest to niedopuszczalne, ponieważ moje urządzenie wbudowane nie ma żadnej metody wyświetlania klucza do użycia przez użytkownika do parowania. Tak więc metoda połączenia musi być po prostu działa.Jak wymusić działanie Bluetooth LE "Po prostu działa" Parowanie w systemie Android
Próbowałem już wielu aplikacji ze Sklepu Play, a wszystkie próbowały jedynie sparować z kluczem. Ale to jest ten, nad którym pracuję: https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner
Mam to działa przy użyciu aplikacji LightBlue (obsługiwane w systemie OS X i iOS). Tak więc wiem, że działa moje urządzenie peryferyjne (serwer GATT): reklama, możliwość podłączenia, charakterystyka dostępna itd.
Jak zmusić Androida do używania Just Works zamiast parowania z kluczem Passkey? Czy brakuje mi konfiguracji peryferyjnej?
Dzięki
Twoje urządzenie osadzające powinno reklamować odpowiednią zdolność IO podczas fazy uwierzytelniania bluetooth. W szczególności powinno to być prawdopodobnie reklamowanie NoInpiutOutput. Sposób wykonania zależy od tego, co masz w systemie wbudowanym. Jeśli na przykład działasz pod Linuksem, wówczas agent, który jest dostarczany z bluezem, może być uruchomiony w następujący sposób: test-agent -c NoInputNoOutput – kaylum
@kaylum Co to jest ** test-agent **, czy jest to polecenie? –
@IgorGanapolsky test-agent to przykładowy kod agenta dostarczany z bluezem. Został przemianowany na "prosty-agent". Kod źródłowy [tutaj] (https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/simple-agent) – kaylum