我不明白蓝牙 UUID 是什么意思。UUID 是否表示协议(例如 射频通讯) ?如果是这样,为什么 createRfcommSocketToServiceRecord()
方法需要 UUID,而它们却在名称中指定了 rfcomm 权限?为什么蓝牙聊天样本代码看起来有一个任意的、硬编码的 UUID?
我的问题出现了,因为根据 这个问题,当运行4.0.4的设备尝试使用反射连接(到一个外部的非 android 设备)时,我得到了一个空指针异常。然而,这个问题的解决方案对我来说并不奏效。UUID muuid = device.getUuids()[0].getUuid();
引发异常。
编辑 : 通过按照 这个答案(使用 UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
)对串口服务的 UUID 进行硬编码,我解决了这个问题。
为什么我需要提供一个 UUID 来使用 createInsecureRfcommSocketToServiceRecord(),
创建一个不安全的 rfcomm 套接字,而不使用反射方法,这让我更加困惑。
有人能教教我吗?