一、发现蓝牙设备:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2 && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
mBleAdapter.startLeScan(mOldScanCallback);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mBleAdapter.getBluetoothLeScanner().startScan(mNewScanCallback);
}
**
* 4.3及以上-5.0以下版本蓝牙搜索回调
*/
private BluetoothAdapter.LeScanCallback mOldScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
String adress = "...";
stopLeScan();
connectGatt(adress);
}
};
/**
* 5.0及以上版本蓝牙搜索回调
*/
private ScanCallback mNewScanCallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
String adress = "...";
stopLeScan();
connectGatt(adress);
}
}
};
三、连接蓝牙设备:
/**
* 连接蓝牙设备
*
* @param address 蓝牙设备的地址
* @return true: 成功 false: 失败
*/
public boolean connectGatt(String address) {
if (mBleAdapter == null) {
return false;
}
BluetoothDevice device = mBleAdapter.getRemoteDevice(address);
if (device == null) {
return false;
}
BluetoothGatt gatt = device.connectG