Znajdź już sparowane urządzenia Bluetooth automatycznie, gdy są w zasięgu

Nie jestem specjalistą od technologii Bluetooth i zastanawiam się, jakie możliwości są dostępne, aby automatycznie znaleźć już sparowane urządzenia Bluetooth, gdy są one w zasięgu.

tło: W naszym przypadku aplikacja na Androida musi połączyć się z dedykowanym akcesorium przez Bluetooth (Rfcomm). Oba urządzenia są sobie znane (są sparowane). Aplikacja Android rejestruje odbiornik transmisji. Podczas uruchamiania aplikacji aplikacja inicjuje wykrywanie, aby znaleźć dedykowane akcesorium. Jeśli akcesorium jest w zasięgu, wszystko działa świetnie.

Problem: Użytkownik uruchamia aplikację poza zakresem dedykowanego akcesorium. Aplikacja na Androida próbuje odkryć akcesoria bez powodzenia. Następnie użytkownik wchodzi w zakres akcesoriów Bluetooth. Odbiorca transmisji nie zostanie powiadomiony o akcesorium, które jest teraz w zasięgu.

Podobny wątek / możliwe rozwiązania Podobne pytania zostały już zadane na temat stackoverflow (np.autoconnect do urządzenia bluetooth, gdy jest w zasięgu). Ale ciągle próbuję odkryć, że urządzenia Bluetooth w zasięgu nie są tym, czego szukam, ponieważ spowodowałoby to zbyt duże zużycie baterii urządzenia z Androidem.

Innym rozwiązaniem byłoby próba połączenia się ze sparowanym urządzeniem w metodzie onResume działania. To działa, ale ma tę wadę, że aplikacja nie może działać w tle. Zatem użytkownik musiał przynajmniej raz przenieść aplikację na pierwszy plan, aby zainicjować połączenie.

Trzeci pomysł, o którym myślałem, to zaimplementowanie gniazda serwera w aplikacji na Androida. Po uruchomieniu aplikacji na Androida i zakończeniu wykrywania bez powodzenia, aplikacja na Androida może utworzyć gniazdo serwera i słuchać przychodzących powiadomień o akcesorium. Pomogłoby to w niektórych scenariuszach (np. Użytkownik uruchamia swoją aplikację, zbliża się do akcesoriów, aktywuje akcesorium, a akcesorium powiadamia aplikację przy starcie, że znajduje się teraz w zasięgu). Ale to wciąż nie jest rozwiązanie w 100%, ponieważ oba urządzenia mogą się uruchamiać poza sobą. Obowiązkowe byłoby również wdrożenie dodatkowej funkcjonalności (gniazdo serwera Bluetooth w urządzeniu z systemem Android…).

Zastanawiam się więc, czy istnieją lepsze rozwiązania. Szukam rozwiązania, w którym nie są wymagane żadne dodatkowe gniazda serwerowe i zawsze otrzymuję powiadomienie, że dwa już sparowane urządzenia znajdują się w swoim zasięgu :-)

Dzięki za pomoc!

questionAnswers(2)

yourAnswerToTheQuestion