Android 藍牙通信——AndroidBluetoothManager
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'
}
效果圖
基礎功能
添加權限
<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;
}
};
等待客戶端連接
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
}
客戶端
初始化
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
}
本文由用戶 Johnny03Y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!