Nie rozumiem, co oznacza identyfikator UUID Bluetooth. Czy identyfikatory UUID oznaczają protokoły (np. RFCOMM )? Jeśli tak, dlaczego te createRfcommSocketToServiceRecord()
metody wymagają identyfikatorów UUID, skoro określają rfcomm bezpośrednio w swoich nazwach? Dlaczego przykładowy kod BluetoothChat ma pozornie dowolny, zakodowany na stałe identyfikator UUID?
Moje pytanie pojawia się, ponieważ zgodnie z tym pytaniem otrzymuję wyjątek wskaźnika zerowego, gdy urządzenia z systemem 4.0.4 próbują połączyć się (z zewnętrznym urządzeniem innym niż Android) za pomocą odbicia. Jednak rozwiązanie tego pytania nie działa dla mnie. UUID muuid = device.getUuids()[0].getUuid();
podnosi wyjątek.
Edycja : rozwiązałem ten problem, zakodowując na stałe identyfikator UUID dla usługi portu szeregowego zgodnie z tą odpowiedzią (używając UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
Ponadto zastanawiam się, dlaczego muszę podać identyfikator UUID, aby utworzyć niezabezpieczone gniazdo rfcomm, używając, createInsecureRfcommSocketToServiceRecord(),
ale nie używając metody odbicia.
Czy ktoś może mnie wyprostować?