我不明白蓝牙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(),但不使用反射方法.
任何人都可以理顺我吗?
作为Android编程的初学者,我有一个问题:我想从连接到微处理器的蓝牙/串行模块接收数据(两个字节).这些数据应该打印到屏幕上,并且每秒更新一次.我已经发现了这个:如何防止Android蓝牙RFCOMM连接在.connect()之后立即死亡? 哪个应该是工作代码,但什么也没发生.我将mac地址更改为00:11:12:05:03:67,这应该与我的蓝牙模块相对应.
我是否完全朝着错误的方向前进?我想我想要的是非常基本的:只需通过蓝牙进行简单的单向数据传输.
任何想法都将非常感激.
最好的祝愿,
凯文