如何设置BlueZ 5在配对过程中询问PIN码 [英] How to setup Bluez 5 to ask pin code during pairing

查看:18
本文介绍了如何设置BlueZ 5在配对过程中询问PIN码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用QDbus实现了org.Bluz.Agent1接口,我想设置一个固定的PIN(我将提供给用户),以便对所有配对请求进行身份验证,如果PIN错误则拒绝它们。代理功能应该是"NoInputNoOutput",因为项目将部署在没有键盘或显示器的RaspberryPI3上。有没有办法处理这件事?谢谢您

推荐答案

对于固定密钥配对,不应将能力初始化为NoInputOutput。NoInputOutput表示没有显示,并且此设备不可能有键盘/UI。在向Bluez注册时为您的代理提及此功能意味着指示Bluez(BluToothd)不要调用任何代理API进行身份验证。

这对于无需任何手动干预的自动对空通常很有用。您可以看到这个sample code,它使用NoInputOutput功能来连接设备,而不需要任何干预。

您需要的是"DisplayOnly"功能,根据您的设备对SSP的支持,指示Bluez调用"DisplayPinCode"或"DisplayPasskey"。

您可以在代理中实现DisplayPinCode/DisplayPasskey以始终回复常量PIN。因此,尝试连接的蓝牙设备可以使用相同的常量PIN进行配对。

这里的Display Pin/Passkey只是对代理开发人员编写向导/UI或任何形式的显示操作的命名约定或提示。但你可以完全忽略显示操作,用静态/恒定6位数字键进行配对回复。

通常,当设备(iPhone/Android移动设备/任何支持蓝牙的设备)尝试从设备端调用"RequestPasskey"或"RequestPinCode"时,Bluez(在Rasperry pi中)会调用此代理API。

这篇关于如何设置BlueZ 5在配对过程中询问PIN码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆