Android: ¿Cómo funcionan los UUIDs de Bluetooth?

No entiendo lo que denota un UUID bluetooth. Los UUID denotan protocolos (por ejemplo,RFCOMM)? Si es así, ¿por qué hacer elcreateRfcommSocketToServiceRecord() ¿Los métodos requieren UUID, cuando especifican rfcomm directamente en sus nombres? ¿Por qué el código de muestra de BluetoothChat tiene un UUID aparentemente arbitrario y codificado?

Mi pregunta surge porque, segúnesta pregunta, Obtengo una excepción de puntero nulo cuando los dispositivos que ejecutan 4.0.4 intentan conectarse (a un dispositivo externo que no sea Android) utilizando la reflexión. Sin embargo, la solución a esa pregunta no funciona para mí.UUID muuid = device.getUuids()[0].getUuid(); plantea una excepción.

Editar: Resolví ese problema al codificar el UUID para el servicio de puerto serie comoesta respuesta (utilizandoUUID.fromString("00001101-0000-1000-8000-00805f9b34fb");).

Estoy más desconcertado por la razón por la que necesito proporcionar un UUID para crear un socket rfcomm no seguro utilizandocreateInsecureRfcommSocketToServiceRecord(), pero no utilizando el método de reflexión.

¿Alguien puede enderezarme?

Respuestas a la pregunta(5)

Su respuesta a la pregunta