好久没有写博客了,以前没写的都抽时间不上,毕竟在写博客的过程中也在不断的进步。好了,废话不多说,直接进入主题。昨天我们刚谈了扫描蓝牙设备的过程,基本的功能我们昨天都已经实现了,今天我们在昨天的基础上进一步加强。当扫描到蓝牙设备之后怎样和扫描到的蓝牙设备进行通信。其实蓝牙设备之间的通信方式和socket的通信方式相差不多。步骤如下:
1、使用扫描的蓝牙设备获取到socket.;
2、初始化socket,就是调用connect方法,此链接方法是耗时的操作,需要在子线程中执行。
3、获取输入输出流就可以和蓝牙设备进行通信啦。
是不是简单的一笔。代码如下:
private void connect(BluetoothDevice device) {
try {//和网络通信的socket类似
final BluetoothSocket bluetoothSocket = device.createRfcommSocketToServiceRecord(
UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
//链接是一个耗时的操作
new Thread(new Runnable() {
@Override
public void run() {
try {
bluetoothSocket.connect();
//获取输出流就可以发消息给客户端
OutputStream outputStream = bluetoothSocket.getOutputStream();
//接收服务端发送过来的消息
InputStream inputStream = bluetoothSocket.getInputStream();
/*到此为止就可以和蓝牙设备进行通信了*/
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
} catch (IOException e) {
e.printStackTrace();
}
}