Pracuję nad projektem konfiguracji sygnalizatorów. Po pewnym czasie po włączeniu, sygnał nawigacyjny staje się nie do skonfigurowania, dopóki nie zostanie włączony cykl zasilania. Aby wyświetlić listę konfigurowalnych sygnałów nawigacyjnych, sprawdzam pewne cechy (nazwę urządzenia Bluetooth, określone dane producenta w pakiecie reklamowym). Muszę również wiedzieć, czy jest "możliwy do połączenia", i. mi. jeśli typ PDU w pakiecie reklamowym BLE urządzenia wskazuje, że można go podłączyć. Przeszukałem klasy Android Bluetooth na wysokim i niskim poziomie, zarówno w Androidzie 4.X, jak i 5.X i nie udało mi się znaleźć niczego, co powie mi o tych informacjach.Wykrywanie, czy urządzenie BLE można podłączyć do systemu Android
Zdaję sobie sprawę, że jednym ze sposobów określenia łączności z beaconem jest połączenie się z nim, np. g .: device.connectGatt(...)
. Jednak widziałem, że czasami zajmuje to ponad dwie minuty, zanim wywołanie zwrotne do onConnectionStateChange
powróci z STATE_DISCONNECTED
. Ponadto może istnieć wiele tych sygnałów nawigacyjnych w środowisku, a łączenie się z każdą konfiguracją, która może być konfigurowalna, byłoby nieefektywne.
iOS odpowiednikiem tego atrybutu można znaleźć w słowniku advertisementData
pod klucz CBAdvertisementDataIsConnectable
w metodzie CBCentralManagerDelegate
zwrotnej centralManager:didDiscoverPeripheral:advertisementData:RSSI
.
Pytanie brzmi: czy istnieje sposób na Androidzie, aby określić, czy urządzenie BLE można "połączyć" z danymi reklamowymi lub zeskanować, czy ...?
Biorąc pod uwagę, że twierdzenia wyrównać z moich własnych ustaleń, myślę, że odpowiedź jest taka, że nie ma odpowiedzi. :-( – mharper
Bardzo mi przykro, że tym razem mam rację: – davidgyoung
Jest to teraz możliwe z Androidem O – davidgyoung