如何验证Raspberry和Android之间的蓝牙通信

时间:2018-07-17 12:34:04

标签: android authentication bluetooth raspberry-pi3 pairing

我在Raspberry上创建了一个应用程序(使用QT蓝牙模块),该应用程序发布具有特定UUID的服务,并在rfcomm套接字上等待。我能够从Android应用程序与Raspberry配对,以找到服务并使用套接字交换数据。 Android应用程序仅询问用户是否要与Raspberry配对,而无需确认密码。现在,我想添加一个身份验证步骤,一个简单的密码或密码,以仅允许与知道密码的人建立连接。我可以更改Android应用程序以显示允许用户插入引脚的对话框,以这种方式,Raspberry上的应用程序可以验证引脚的正确性并最终关闭插座,但是该解决方案显然仅对具有以下功能的设备有效我的应用程序。有没有一种方法可以在配对过程中实施类似的解决方案,以使其可用于所有设备?我尝试了QT功能,但没有找到任何可以帮助我的东西。谢谢

1 个答案:

答案 0 :(得分:0)

您的设计中存在一个缺陷,即如果您打算使用图钉进行身份验证,那么树莓派需要某种方式来告诉用户图钉应该是什么。如果树莓派上没有屏幕或某种类型的输出,则该引脚将无用,因为您无法生成随机的引脚,然后告诉用户它应该是什么。
根据应用程序的不同,通常不需要身份验证即可。考虑一下您使用的大多数蓝牙设备,它们都没有任何身份验证,只需单击配对即可。

以下是我可以想到的其他一些选择:
1)检测您何时已经连接到树莓派上的设备,并且不广播该服务,因此一旦您连接到设备,另一个设备也无法连接并引起问题。
2)在树莓派上有一个按钮,按下按钮后仅广播发布服务1分钟
3)从树莓派获取屏幕或以某种方式向用户输出信息,以向他们显示在手机上输入的密码