我正在使用通过蓝牙将android设备与另一设备(CAN模块)连接的应用程序。

我将以前未配对的设备配对如下:

Method m = device.getClass().getMethod("createBond", (Class[]) null);
m.invoke(device, (Object[]) null);


就像一个魅力。

不过有一个问题。 CAN模块的设置方式不需要引脚,也不需要任何其他形式的配对确认,您只需要说要与设备配对即可。现在,如果我的应用程序尝试连接到非CAN模块的蓝牙设备(例如电话),该怎么办?

在这种情况下,将出现一个对话框,要求用户确认配对。我不在乎对话框,但是我想以某种方式对“取消”按钮做出反应。

把它们加起来:
当用户在“蓝牙配对确认”对话框上按doSomething()时,我想调用方法Cancel。这可能吗?

最佳答案

您应该听ACTION_BOND_STATE_CHANGED Intent(希望您知道如何注册BroadcastReceiver并使用它们)。

在系统(BluetoothService)广播的动作上方,它还包含Current Bond StatePrevious Bond State

有三个邦联国。

BOND_BONDED指示远程设备已绑定(配对)。

BOND_BONDING表示正在与远程设备进行绑定(配对)。

BOND_NONE指示远程设备未绑定(配对)。

在您的情况下,PassKey对话框上的“取消”按钮会收到BOND_BONDING >> BOND_NONE,PassKey对话框上的“配对”按钮会收到BOND_BONDING >> BOND_BONDED

关于android - 对“蓝牙配对”对话框输入的 react ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28669348/

10-13 04:12