名称解释
- UUID 含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分
- Rfcomm 一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。
整体思路
![这里写图片描述](https://img-blog.csdn.net/20160421172048118)
创建服务端线程
public class ServerThread extends Thread {
private static final String TAG = "Chat";
private static final String NAME = "Chat";
String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
// 通过一个规定好的串号,生成一个UUID号
UUID MY_UUID = UUID.fromString(SPP_UUID);
/**
* 服务端的socket
*/
private BluetoothServerSocket serverSocket;
private BufferedReader bufferedReader;
private BufferedWriter bufferedWriter;
private Handler handler;
/**
* 服务端线程
*
* @param handler
* handler对象,用于发送消息给主线程
* @param bluetoothAdapter
*/
public ServerThread(Handler handler, BluetoothAdapter bluetoothAdapter) {
try {
this.handler = handler;
// 通过BluetoothAdapter创建一个服务端,NAME是自己定义 UUID需要根据一个串号去生成
serverSocket = bluetoothAdapter.listenUsingRfcommWithServiceRecord(
NAME, MY_UUID);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
super.run();
while (true) {
try {
// 阻塞