📜  Android 蓝牙列表配对设备示例(1)

📅  最后修改于: 2023-12-03 14:39:10.605000             🧑  作者: Mango

Android 蓝牙列表配对设备示例

在 Android 开发中,使用蓝牙连接其他设备是一项非常常见的任务,而与外部设备进行连接之前,必须先建立配对关系。具体的示例代码如下:

1. 权限声明

在 AndroidManifest.xml 文件中添加以下权限声明:

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
2. 蓝牙初始化

在 Activity 中初始化蓝牙适配器:

private BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
3. 获取已配对设备列表
private void getPairedDevices() {
    Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();

    if (!pairedDevices.isEmpty()) {
        // 迭代已配对设备列表
        for (BluetoothDevice device : pairedDevices) {
            String deviceName = device.getName();
            String deviceAddress = device.getAddress();
            // TODO: 处理设备信息
        }
    }
}
4. 监听配对结果
private final BroadcastReceiver pairingReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        if (action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED)) {
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            int bondState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR);

            if (bondState == BluetoothDevice.BOND_BONDED) {
                // 配对成功
                // TODO: 处理配对成功结果
            } else if (bondState == BluetoothDevice.BOND_NONE) {
                // 配对失败
                // TODO: 处理配对失败结果
            }
        }
    }
};
5. 开始配对
private void startPairing(BluetoothDevice device) {
    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
    registerReceiver(pairingReceiver, filter);

    device.createBond();
}

以上是一个非常基本的蓝牙配对设备示例,可以根据实际需求进行调整。注意,在具体开发中,需要注意蓝牙状态的变化,防止出现无法配对或连接的情况。