//停止扫描
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);
// }
// }<