有没有办法在Android中自动/程序化配对2个蓝牙设备?

时间:2011-11-15 16:35:44

标签: android bluetooth

我正在开发一个通过蓝牙连接设备并交换消息的应用程序。它适用于配对设备,但我也希望它能自动配对未配对的设备。例如,它可以存储和使用相同的PIN配对请求,我只是不知道如何在我的applciation中以编程方式管理此请求,如何在收到配对请求时自动设置和发送PIN以及如何发起这样的请求使用预定义的PIN码。

任何片段或想法都将受到高度赞赏! :)

修改 我知道它有风险,我正在开发这个应用程序用于紧急情况,只有在没有其他方法但蓝牙可用的情况下。还有一种方法可以提前与设备配对而不连接它们吗?就像我们说这些设备的MAC地址列表一样,我可以使用它们与这些设备生成绑定,以便它们在我的设备上显示配对?

3 个答案:

答案 0 :(得分:1)

你不能这样做。做你想做的事会会产生巨大的安全风险。考虑一下,我的设备只是在你的蓝牙范围内的任何地方,现在我可以在你不知道的情况下发送任何我想要的东西吗?你不能真的这样做,我强烈建议不要试图颠覆它。

答案 1 :(得分:1)

反映setPin方法允许我自动将引脚发送到其他设备。我必须在收听配对请求的广播接收器中实现它。虽然我无法摆脱对话框,它只是停留在屏幕上,我不知道如何关闭它(以编程方式)并继续绑定过程,因为此对话框是从connect()内部调用的,这是一种阻塞方法。我现在还没有放弃它:))

答案 2 :(得分:0)

对于蓝牙版本2.1及更高版本,有一种称为“正常工作”关联模型的配对方法。这是配对的最低安全方法,并且没有针对中间人攻击的保护。

但是,这将提供安全的加密链接,而无需交换密码或验证设备ID。

不同平台上的API可能不同,但基础HCI消息要求您指明您的设备(或其中一个设备)具有以下IO功能:

No Keyboard, No Display. 

正如您可能已经猜到的那样,这是一种模式 使用蓝牙的简单设备,如扬声器或耳机。

如果你能找到配置它的API,那么Secure Simple Pairing的'just works'关联模式将用于配对。

下一步是存储链接键,例如结合。许多设备例如移动电话仍将为用户创建一个对话框,询问他们是否想要“记住此设备”,因为用户授权是由BT规范指定的......但这是另一个问题。