Android SDK 32中的蓝牙方面变化了很多。其中,最明显的变化是基于升级的BluetoothGatt API。此API已经替换了旧的BluetoothGatt API。下面是一个基于Android SDK 32的示例代码:
public class MyBluetoothGattCallback extends BluetoothGattCallback {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
// 处理连接状态变化的代码
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
// 处理发现服务后的代码
}
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
// 处理特征读取后的代码
}
@Override
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
// 处理特征写入后的代码
}
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
// 处理特征改变后的代码
}
@Override
public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
// 处理描述符读取后的代码
}
@Override
public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
// 处理描述符写入后的代码
}
}
BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
BluetoothDevice device = bluetoothAdapter.getRemoteDevice(address); bluetoothGatt = device.connectGatt(context, false, new MyBluetoothGattCallback()); bluetoothGatt.discoverServices();
BluetoothGattService service = bluetoothGatt.getService(serviceUuid); BluetoothGattCharacteristic