我不明白蓝牙UUID是什么意思.UUID是否表示协议(例如RFCOMM)?如果是这样,为什么这些createRfcommSocketToServiceRecord()方法需要UUID,当他们在名字中指定rfcomm时?为什么BluetoothChat示例代码有一个看似随意的,硬编码的UUID?
我的问题出现了,因为,根据这个问题,当运行4.0.4的设备尝试使用反射连接(到外部的,非Android设备)时,我得到一个空指针异常.但是,该问题的解决方案对我不起作用.UUID muuid = device.getUuids()[0].getUuid();提出异常.
编辑:我已经通过根据此答案(使用UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");)硬编码串行端口服务的UUID解决了这个问题.
我更加困惑的是为什么我需要提供一个UUID来创建一个不安全的rfcomm套接字,createInsecureRfcommSocketToServiceRecord(),但不使用反射方法.
任何人都可以理顺我吗?
我需要一个蓝牙设备的UUID连接到它,但我不太了解uuid.它是否特定于每个设备以及如何知道什么是device's uuid.可以使用代码完成吗?