在前两篇博客中大致介绍了蓝牙相关的基础知识,不了解的朋友可以查看前两篇博客:
Android蓝牙通讯(一)————蓝牙功能的相关权限
Android蓝牙通讯(二)————蓝牙的相关操作
在本篇博客中我将介绍如何实现两个蓝牙设备之间的通讯,蓝牙的通讯类似于socket的通讯,在蓝牙通讯中没有绝对的设备充当server角色,基本上就是发送连接请求的设备充当client角色,而server一般会在开辟一个子线程,在子线程中不断循环监测是否有client的请求连接,代码如下:
private class AcceptListener extends Thread {
private BluetoothServerSocket mServerSocket;
private BluetoothAdapter mAdapter;
private BluetoothSocket mSocket;
public AcceptListener() {
mAdapter = BluetoothAdapter.getDefaultAdapter();
}
@Override
public void run() {
try {
setState(STATE_LISTEN);
mServerSocket = mAdapter.listenUsingInsecureRfcommWithServiceRecord("bluetooth",UUID_INSECURE);
while (mState != STATE_CONNECTED && mState != STATE_CONNECTING){
mSocket = mServerSocket.accept();