createRfcommSocketToServiceRecord()
方法需要UUID,当它们在名称中已经指定了rfcomm?为什么BluetoothChat示例代码有一个看似任意的硬编码UUID?我的问题是因为根据this question,当设备运行4.0.4时,尝试使用反射连接(到外部非Android设备)时,我会得到一个空指针异常。然而,那个问题的解决方案对我不起作用。
UUID muuid = device.getUuids()[0].getUuid();
引发了一个异常。
编辑:我通过硬编码UUID解决了串行端口服务的问题,如此答案所述(使用UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
)。
我进一步困惑的是,为什么我需要提供一个UUID来创建一个未加密的rfcomm套接字,使用createInsecureRfcommSocketToServiceRecord()
,但不使用反射方法。
有人能给我解释一下吗?