我正在使用通过蓝牙将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 State
和Previous 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/