Android蓝牙通信——AndroidBluetoothManager


转载请说明出处!
作者:kqw攻城狮
出处:个人站 | CSDN


To get a Git project into your build:

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

1
2
3
4
5
6
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

Step 2. Add the dependency

1
2
3
dependencies {
compile 'com.github.kongqw:AndroidBluetoothManager:1.0.0'
}

AndroidBluetoothManager

效果图

这里写图片描述

PNG

GIF

基础功能

添加权限

1
2
3
4
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

初始化

1
mBluetoothManager = new BluetoothManager();

打开蓝牙

1
mBluetoothManager.openBluetooth();

关闭蓝牙

1
mBluetoothManager.closeBluetooth();

添加蓝牙开关状态的监听

1
mBluetoothManager.setOnBluetoothStateListener(this);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* 正在关闭蓝牙的回调
*/
@Override
public void onBluetoothStateTurningOff() {
// TODO
}
/**
* 蓝牙关闭的回调
*/
@Override
public void onBluetoothStateOff() {
// TODO
}
/**
* 正在打开蓝牙的回调
*/
@Override
public void onBluetoothStateTurningOn() {
// TODO
}
/**
* 蓝牙打开的回调
*/
@Override
public void onBluetoothStateOn() {
// TODO
}

移除蓝牙开关状态的监听

1
mBluetoothManager.removeOnBluetoothStateListener();

设置蓝牙可见

1
startActivity(mBluetoothManager.getDurationIntent(0));

获取蓝牙名称

1
mBluetoothManager.getName()

修改蓝牙名称

1
mBluetoothManager.setName(newName);

扫描附近的蓝牙设备

1
mBluetoothManager.discovery();

添加扫描蓝牙设备的监听

1
mBluetoothManager.setOnDiscoveryDeviceListener(this);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* 开始扫描附近蓝牙设备的回调
*/
@Override
public void onDiscoveryDeviceStarted() {
// TODO
}
/**
* 扫描到附近蓝牙设备的回调
*
* @param device 蓝牙设备
*/
@Override
public void onDiscoveryDeviceFound(BluetoothDevice device) {
// TODO
}
/**
* 扫描附近蓝牙设备完成的回调
*/
@Override
public void onDiscoveryDeviceFinished() {
// TODO
}

移除扫描蓝牙设备的监听

1
mBluetoothManager.removeOnDiscoveryDeviceListener();

服务端

初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mBluetoothService = new BluetoothService() {
@Override
protected UUID onSecureUuid() {
// TODO 设置自己的UUID
return UUID_SECURE;
}
@Override
protected UUID onInsecureUuid() {
// TODO 设置自己的UUID
return UUID_INSECURE;
}
};

等待客户端连接

1
mBluetoothService.start();

断开连接/释放资源

1
mBluetoothService.stop();

添加蓝牙连接的监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mBluetoothService.setOnServiceConnectListener(new OnServiceConnectListener() {
@Override
public void onConnectListening() {
// TODO
}
@Override
public void onConnectSuccess(BluetoothDevice device) {
// TODO
}
@Override
public void onConnectFail(Exception e) {
// TODO
}
@Override
public void onConnectLost(Exception e) {
// TODO
}
});

发送消息

1
mBluetoothService.send(chatText);

添加消息收发的监听

1
mBluetoothClient.setOnMessageListener(this);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 蓝牙发送了消息
*
* @param message 发送的消息
*/
@Override
public void onSend(String message) {
// TODO
}
/**
* 蓝牙接收到消息
*
* @param message 接收的消息
*/
@Override
public void onRead(String message) {
// TODO
}

客户端

初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
mBluetoothClient = new BluetoothClient() {
@Override
protected UUID onSecureUuid() {
// TODO 设置自己的UUID
return UUID_SECURE;
}
@Override
protected UUID onInsecureUuid() {
// TODO 设置自己的UUID
return UUID_INSECURE;
}
};

蓝牙连接(安全)

1
mBluetoothClient.connect(mBluetoothDevice, true);

蓝牙连接(不安全)

1
mBluetoothClient.connect(mBluetoothDevice, false);

断开连接/释放资源

1
mBluetoothClient.stop();

添加蓝牙连接的监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mBluetoothClient.setOnClientConnectListener(new OnClientConnectListener() {
@Override
public void onConnecting() {
// TODO
}
@Override
public void onConnectSuccess(BluetoothDevice device) {
// TODO
}
@Override
public void onConnectFail(Exception e) {
// TODO
}
@Override
public void onConnectLost(Exception e) {
// TODO
}
});

发送消息

1
mBluetoothClient.send(chatText);

添加消息收发的监听

1
mBluetoothClient.setOnMessageListener(this);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 蓝牙发送了消息
*
* @param message 发送的消息
*/
@Override
public void onSend(String message) {
// TODO
}
/**
* 蓝牙接收到消息
*
* @param message 接收的消息
*/
@Override
public void onRead(String message) {
// TODO
}
坚持原创技术分享,您的支持将鼓励我继续创作!