7
Android:蓝牙UUID如何工作?
我不明白蓝牙UUID表示什么。UUID是否表示协议(例如RFCOMM)?如果是这样,createRfcommSocketToServiceRecord()当方法在其名称中正确指定rfcomm时,为什么它们需要UUID?为什么BluetoothChat示例代码具有看似任意的硬编码UUID? 之所以出现我的问题,是因为按照这个问题,当运行4.0.4的设备尝试使用反射连接(连接到外部非Android设备)时,出现了空指针异常。但是,该问题的解决方案对我不起作用。UUID muuid = device.getUuids()[0].getUuid();引发异常。 编辑:通过按照此答案(使用UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");)对串行端口服务的UUID进行硬编码,我解决了该问题。 为什么我需要提供一个UUID来创建一个不安全的rfcomm套接字createInsecureRfcommSocketToServiceRecord(),,而不使用反射方法,我对此进一步感到困惑。 谁能理我?