Ich verstehe nicht, was eine Bluetooth-UUID bedeutet. Bezeichnen UUIDs Protokolle (z. B. RFCOMM )? Wenn ja, warum erfordern die createRfcommSocketToServiceRecord()
Methoden UUIDs, wenn sie rfcomm direkt in ihren Namen angeben? Warum hat der BluetoothChat-Beispielcode eine scheinbar willkürliche, fest codierte UUID?
Meine Frage stellt sich, weil gemäß dieser Frage eine Nullzeigerausnahme angezeigt wird, wenn Geräte mit 4.0.4 versuchen, mithilfe von Reflection eine Verbindung (zu einem externen Gerät ohne Android) herzustellen. Die Lösung dieser Frage funktioniert bei mir jedoch nicht. UUID muuid = device.getUuids()[0].getUuid();
löst eine Ausnahme aus.
Bearbeiten : Ich habe dieses Problem gelöst, indem ich die UUID für den seriellen Portdienst gemäß dieser Antwort (mit UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
) fest codiert habe .
Ich bin weiter verwirrt darüber, warum ich eine UUID angeben muss, um einen ungesicherten RFCOM-Socket createInsecureRfcommSocketToServiceRecord(),
mit der Reflektionsmethode zu erstellen, aber nicht.
Kann mich jemand begradigen?