Android: Jak działają UUID bluetooth?

Nie rozumiem, co oznacza UUID bluetooth. Czy UUID oznaczają protokoły (np.RFCOMM)? Jeśli tak, to dlaczegocreateRfcommSocketToServiceRecord() metody wymagają identyfikatorów UUID, gdy określają rfcomm w swoich nazwach? Dlaczego przykładowy kod BluetoothChat ma pozornie arbitralny UUID?

Moje pytanie powstaje, ponieważ, jak zato pytanie, Otrzymuję wyjątek wskaźnika zerowego, gdy urządzenia działające w wersji 4.0.4 próbują połączyć się (z urządzeniem zewnętrznym, 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.

Edytować: Rozwiązałem ten problem przez zakodowanie UUID dla usługi portu szeregowego zgodnie zta odpowiedź (za pomocąUUID.fromString("00001101-0000-1000-8000-00805f9b34fb");).

Zastanawiam się dalej, dlaczego muszę dostarczyć identyfikator UUID, aby utworzyć niezabezpieczone gniazdo rfcomm przy użyciucreateInsecureRfcommSocketToServiceRecord(), ale nie używa metody odbicia.

Czy ktoś może mnie wyprostować?

questionAnswers(5)

yourAnswerToTheQuestion