您的位置:首页 > 产品设计 > UI/UE

Android 蓝牙通信——AndroidBluetoothManager

2017-08-14 18:05 218 查看
转载请说明出处!

作者: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:

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}


Step 2. Add the dependency

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


AndroidBluetoothManager

效果图



PNG

GIF

基础功能

加入权限

<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" />


初始化

mBluetoothManager = new BluetoothManager();


打开蓝牙

mBluetoothManager.openBluetooth();


关闭蓝牙

mBluetoothManager.closeBluetooth();


加入蓝牙开关状态的监听

mBluetoothManager.setOnBluetoothStateListener(this);


/**
* 正在关闭蓝牙的回调
*/
@Override
public void onBluetoothStateTurningOff() {
// TODO
}

/**
* 蓝牙关闭的回调
*/
@Override
public void onBluetoothStateOff() {
// TODO
}

/**
* 正在打开蓝牙的回调
*/
@Override
public void onBluetoothStateTurningOn() {
// TODO
}

/**
* 蓝牙打开的回调
*/
@Override
public void onBluetoothStateOn() {
// TODO
}


移除蓝牙开关状态的监听

mBluetoothManager.removeOnBluetoothStateListener();


设置蓝牙可见

startActivity(mBluetoothManager.getDurationIntent(0));


获取蓝牙名称

mBluetoothManager.getName()


改动蓝牙名称

mBluetoothManager.setName(newName);


扫描附近的蓝牙设备

mBluetoothManager.discovery();


加入扫描蓝牙设备的监听

mBluetoothManager.setOnDiscoveryDeviceListener(this);


/**
* 開始扫描附近蓝牙设备的回调
*/
@Override
public void onDiscoveryDeviceStarted() {
// TODO
}

/**
* 扫描到附近蓝牙设备的回调
*
* @param device 蓝牙设备
*/
@Override
public void onDiscoveryDeviceFound(BluetoothDevice device) {
// TODO
}

/**
* 扫描附近蓝牙设备完毕的回调
*/
@Override
public void onDiscoveryDeviceFinished() {
// TODO
}


移除扫描蓝牙设备的监听

mBluetoothManager.removeOnDiscoveryDeviceListener();


服务端

初始化

mBluetoothService = new BluetoothService() {

@Override
protected UUID onSecureUuid() {
// TODO 设置自己的UUID
return UUID_SECURE;
}

@Override
protected UUID onInsecureUuid() {
// TODO 设置自己的UUID
return UUID_INSECURE;
}
};


等待client连接

mBluetoothService.start();


断开连接/释放资源

mBluetoothService.stop();


加入蓝牙连接的监听

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
}
});


发送消息

mBluetoothService.send(chatText);


加入消息收发的监听

mBluetoothClient.setOnMessageListener(this);


/**
* 蓝牙发送了消息
*
* @param message 发送的消息
*/
@Override
public void onSend(String message) {
// TODO
}

/**
* 蓝牙接收到消息
*
* @param message 接收的消息
*/
@Override
public void onRead(String message) {
// TODO
}


client

初始化

mBluetoothClient = new BluetoothClient() {
@Override
protected UUID onSecureUuid() {
// TODO 设置自己的UUID
return UUID_SECURE;
}

@Override
protected UUID onInsecureUuid() {
// TODO 设置自己的UUID
return UUID_INSECURE;
}
};


蓝牙连接(安全)

mBluetoothClient.connect(mBluetoothDevice, true);


蓝牙连接(不安全)

mBluetoothClient.connect(mBluetoothDevice, false);


断开连接/释放资源

mBluetoothClient.stop();


加入蓝牙连接的监听

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
}
});


发送消息

mBluetoothClient.send(chatText);


加入消息收发的监听

mBluetoothClient.setOnMessageListener(this);


/**
* 蓝牙发送了消息
*
* @param message 发送的消息
*/
@Override
public void onSend(String message) {
// TODO
}

/**
* 蓝牙接收到消息
*
* @param message 接收的消息
*/
@Override
public void onRead(String message) {
// TODO
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: