我正在开发一个应用程序,通过蓝牙将 android 设备与另一个设备(CAN 模块)连接起来。
我像这样配对以前未配对的设备:
Method m = device.getClass().getMethod("createBond", (Class[]) null);
m.invoke(device, (Object[]) null);
这就像一个魅力。
不过有个问题。 CAN 模块的设置方式使您不需要管脚或任何其他形式的配对确认,您只需说您想与设备配对,它就会这样做。现在,如果我的应用程序尝试连接到不是 CAN 模块的蓝牙设备(例如手机),会发生什么情况?
在这种情况下,会出现一个对话框,要求用户确认配对。我不介意对话框,但我想以某种方式对“取消”按钮使用react。
总结一下:
当用户在蓝牙配对确认对话框中按下 Cancel
时,我想调用方法 doSomething()
。这可能吗?
最佳答案
你应该听ACTION_BOND_STATE_CHANGED Intent(我希望你知道如何注册 BroadcastReceiver 并使用它们)。
以上由系统(BluetoothService)广播的 Action 还包含Current Bond State
和Previous Bond State
。
邦德有三种状态。
BOND_BONDED 表示远程设备已绑定(bind)(已配对)。
BOND_BONDING 表示正在与远程设备绑定(bind)(配对)。
BOND_NONE 表示远程设备未绑定(bind)(配对)。
在您的情况下,如果密码对话框上有取消按钮,您将收到 BOND_BONDING >> BOND_NONE
,如果密码对话框上有配对按钮,您将收到 BOND_BONDING >> BOND_BONDED
关于android - 对蓝牙配对对话输入的 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28669348/