Android之BLE(低功耗)蓝牙开发

文章详细描述了Android应用中如何使用BLE蓝牙进行设备连接、扫描、数据接收和发送的过程,以及处理连接状态变化和错误的情况。
摘要由CSDN通过智能技术生成

//停止扫描

public void stopScan() {

if (isScaning)

bleManager.cancelScan();

}

//断开连接

public void disConnect() {

handler.removeCallbacks(bleScanRunnable);

handler.removeCallbacks(bleConnectedRunnable);

handler.removeCallbacks(bleConnectRunnable);

handler.removeCallbacks(returnTimeOutRunnable);

handler.removeCallbacks(receiveDataRunnable);

if (connectedBleDevice != null && bleManager.isConnected(connectedBleDevice)) {

stopIndicate();

bleManager.clearCharacterCallback(connectedBleDevice);

bleManager.disconnect(connectedBleDevice);

}

}

//判断是否连接

public boolean isConnected() {

if (connectedBleDevice == null) {

return false;

} else {

return bleManager.isConnected(connectedBleDevice);

}

}

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)

public void connectBle(BleDevice bleDevice) {

stopScan();

bleManager.connect(bleDevice, new BleGattCallback() {

@Override

public void onStartConnect() {

}

@Override

public void onConnectFail(BleDevice bleDevice, BleException e) {

//连接失败,需做好重连措施

connectedBleDevice = bleDevice;

handler.postDelayed(bleConnectRunnable, 200);

Log.e(“连接失败:”, e.toString());

}

@Override

public void onConnectSuccess(BleDevice bleDevice, BluetoothGatt bluetoothGatt, int i) {

Log.e(TAG, “连接成功”);

receiveData(bleDevice);

connectedBleDevice = bleDevice;

handler.postDelayed(bleConnectedRunnable, 200);

//设备的服务信息及特征信息

// List serviceList = bluetoothGatt.getServices();

// for (BluetoothGattService service : serviceList) {

// UUID uuid_service = service.getUuid();

// Log.e(TAG, "onConnectSuccess:service---- " + uuid_service);

// List characteristicList = service.getCharacteristics();

// for (BluetoothGattCharacteristic characteristic : characteristicList) {

// UUID uuid_chara = characteristic.getUuid();

// Log.e(TAG, “onConnectSuccess: chara” + uuid_chara);

// }

// }<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值