4

我有一个蓝牙设备列表,我想以编程方式与其中一个有 PIN 码的设备配对。
我在这里阅读了几篇讨论该主题的帖子,但我发现了两种截然不同的方法。

第一个选项:您调用该device.createBond()方法。然后,在 BroadcastReceiver 上,您收听BluetoothDevice.ACTION_PAIRING_REQUEST动作并在那里调用 device.setPin(PIN_BYTES); device.setPinConfirmation(true);

您可以在此处查看完整示例并发布:如何以编程方式配对蓝牙设备 Android

第二个选项:如果你先调用device.setPin(PIN_BYTES)anddevice.setPinConfirmation(true)然后再调用device.createBond()怎么办?例如:

if(connConfig!=null && connConfig.bluetooth!=null){
    device.setPin(connConfig.bluetooth.pass);
    device.setPairingConfirmation(true);
    device.createBond();
}

然后您忘记了BluetoothDevice.ACTION_PAIRING_REQUEST在 BroadcastReceiver 上收听动作而只关注BluetoothDevice.ACTION_BOND_STATE_CHANGED事件?Android + Pair devices via bluetooth programmatically
请参阅第一个答案中的代码。据我所知,那个家伙没有使用任何 PIN 码进行配对,所以我还需要使用 setPin 方法。

你觉得哪一个更好?
我错过了什么吗?顺便说一句:我没有使用反射,因为我不针对旧平台。

4

0 回答 0