Kiedy android wyświetla okno parowania podczas używania niezabezpieczonych gniazd Bluetooth RFCOMM?

Próbuję połączyć dwa niesparowane urządzenia z systemem Android przez Bluetooth do celów sieciowych P2P. Ochrona MitM nie jest wymagana. Android macreateInsecureRfcommSocketToServiceRecord ilistenUsingInsecureRfcommWithServiceRecord do tego (od poziomu API 10), który działa doskonale na nowoczesnych urządzeniach. Jednak w Galaxy Ace (Android 2.3.3 = poziom 10 API, łączący się z Galaxy Nexus) tworzy okno parowania. Dzieje się tak zarówno w przypadku połączeń przychodzących, jak i wychodzących. (Aktualizacja: Aktualizacja Galaxy Ace do Androida 2.3.6 najwyraźniej rozwiązuje problem. Czy istnieje konkretna wersja Androida, która zawsze / nigdy tego nie robi?)

Po zaakceptowaniu parowania połączenie działa. Z tego powodu uważam, że nie jest to związane zWydanie 40101: createInsecureRfcommSocketToServiceRecord powoduje okno parowania w Androidzie 4.2 co powinno się zdarzyć tylko wtedy, gdy rekord usługi nie istnieje.

Zakładam, że nie można uniknąć tego okna dialogowego na urządzeniach, na których pojawia się (jeśli to możliwe, wyjaśnienie, jak to zrobić, jest prawidłową odpowiedzią). Z tego powodu,Chciałbym wiedzieć, kiedy pojawia się taki dialog. Nie znalazłem niczego w źródle Java w Androidzie (szybko się rodzi). Wątpię, czy ma to coś wspólnego z wersją Bluetooth, ponieważ Ace ma Bluetooth 2.1, który ma obsługiwać wymagane połączenia „tylko działa”.

Jeśli jest coś, co pozwoliłoby mi wykryć, czy urządzenie będzie obsługiwać połączenia bez otwierania okna dialogowego, lub jeśli było to wyraźnie przypisane do pewnej wersji Androida, to bardzo by mi pomogło.

Poza tym szukam sposobu na łatwewykluczyć takie urządzenia.

questionAnswers(1)

yourAnswerToTheQuestion