我无法连接到蓝牙设备的特定UUID:
private void initBt() {
BluetoothAdapter blueAdapter = BluetoothAdapter.getDefaultAdapter();
if (blueAdapter != null) {
blueAdapter.enable();
if (blueAdapter.isEnabled()) {
BluetoothDevice device = blueAdapter.getRemoteDevice("B0:00:00:00:00:F3");
UUID uuid = UUID.fromString("0000fff1-0000-0000-0000-00805f9b34fb");
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuid);
socket.connect();
outputStream = socket.getOutputStream();
} else {
Log.e("error", "Bluetooth is disabled.");
}
} else {
throw new IOException("BluetoothAdapter failure");
}
}
我想获取此UUID的输出流,以便我可以向其发送消息。 我从App LightBlue获得了UUID。
我无法配对设备(如果LightBlue可以在没有手动配对的情况下将消息发送到UUID,我认为我不需要)。
在socket.connect()上抛出IOException;陈述:
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
我哪里错了?
感谢您的帮助。
更新
我也尝试了
device.createInsecureRfcommSocketToServiceRecord(uuid);
并仔细检查我是否拥有所有权限(蓝牙,BluetoothAdmin和AccessFineLocation)。