Je ne comprends pas ce que signifie un UUID Bluetooth. Les UUIDs désignent-ils des protocoles (par ex. RFCOMM ) ? Dans l'affirmative, pourquoi les createRfcommSocketToServiceRecord()
nécessitent des UUID, alors qu'elles spécifient rfcomm dans leur nom ? Pourquoi l'exemple de code BluetoothChat a-t-il un UUID codé en dur et apparemment arbitraire ?
Ma question se pose parce que, selon le cette question En effet, j'obtiens une exception de pointeur nul lorsque des appareils fonctionnant sous 4.0.4 essaient de se connecter (à un appareil externe, non Android) en utilisant la réflexion. Cependant, la solution à cette question ne fonctionne pas pour moi. UUID muuid = device.getUuids()[0].getUuid();
soulève une exception.
Editer : J'ai résolu ce problème en codant en dur l'UUID pour le service Serial port comme suit cette réponse (en utilisant UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
Je ne comprends pas non plus pourquoi je dois fournir un UUID pour créer un socket rfcomm non sécurisé à l'aide de createInsecureRfcommSocketToServiceRecord(),
mais pas en utilisant la méthode de réflexion.
Quelqu'un peut-il m'éclairer ?