Android: como funcionam os UUIDs bluetooth?
Eu não entendo o que um bluetooth UUID denota. Os UUIDs denotam protocolos (por exemplo,RFCOMM) Se sim, por quecreateRfcommSocketToServiceRecord()
métodos requerem UUIDs, quando especificam rfcomm diretamente em seus nomes? Por que o código de exemplo BluetoothChat tem um UUID aparentemente arbitrário e codificado?
Minha pergunta surge porque, conformeessa questãoEstou recebendo uma exceção de ponteiro nulo quando dispositivos que executam o 4.0.4 tentam se conectar (a um dispositivo externo, não-android) usando reflexão. No entanto, a solução para essa pergunta não funciona para mim.UUID muuid = device.getUuids()[0].getUuid();
levanta uma exceção.
Editar: Eu resolvi esse problema codificando o UUID para serviço de porta serial conformeesta resposta (usandoUUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
).
Fico ainda mais intrigado com a necessidade de fornecer um UUID para criar um soquete rfcomm não seguro usandocreateInsecureRfcommSocketToServiceRecord(),
mas não usando o método de reflexão.
Alguém pode me endireitar?