首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙配对中的问题

蓝牙配对中的问题
EN

Stack Overflow用户
提问于 2015-03-16 07:54:26
回答 1查看 758关注 0票数 0

我们正在WEC2013中测试蓝牙,并在iMx6平台上使用通用厂商提供的USB接口进行测试。我们使用的是WEC2013 BSP提供的默认HCI传输层。

BT被打开,并能够扫描附近的所有设备。

我们已经启用了以下一组sysgen变量和注册表项。

Sysgen变量:

代码语言:javascript
复制
SYSGEN_BTH (Bluetooth stack with universal loadable driver)
SYSGEN_BTH_BTHUTIL (Bluetooth Profile Management APIs)
SYSGEN_BTH_HID_KEYBOARD (Bluetooth HID - Keyboard)
SYSGEN_BTH_HID_MOUSE (Bluetooth HID - Mouse)
SYSGEN_BTH_AG (Bluetooth HS/HF and Audio gateway service)
SYSGEN_BTH_SETTINGS (Bluetooth settings UI)
SYSGEN_OBEX_CLIENT (Obex client)
SYSGEN_OBEX_SERVER (Obex server)
SYSGEN_OBEX_FILEBROWSER (OBEX file browser)
SYSGEN_OBEX_INBOX (OBEX Inbox)
SYSGEN_FTPD (FTP server)
SYSGEN_BTH_BTHSSVC(Support Secure Simple Pairing)

注册表条目:

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\224_1_1\Default\Bluetooth_USB_Driver]
  "DLL"="bthusb.dll"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\224_1_1\Bluetooth_USB_Driver]
  "DLL"="bthusb.dll"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\Transports\PnP\{B3DD867A-1E6E-4215-8AA7-EAC1DFC46548}]
"flags"=dword:80000000
"driver"="bthusb.dll"
"resetdelay"=dword:0
"PacketSize"=dword:200
"BlockSize"=dword:5

[HKEY_LOCAL_MACHINE\ControlPanel\Bluetooth]
"PinAttemptInterval"=dword:200000
"PinEntries"=multi_sz:"0000","8888"

我们观察到了与设备配对的不同情况。

  1. 在这里连接到移动板(imx6+usb dongle与WEC2013一起运行)是成功的,当通过bthsettings启动对时。它将触发两边的6位自动密码。
  2. 从移动连接到板,而不打开bthsettings。在这里,配对就是成功一次。当用户界面不打开(BT在后台),配对是从移动启动,两者将配对使用自动6位密码方法。但是这将在内部调用bthsettings,因此下次当我们从移动端进行配对时,移动端将请求手动键插入。一旦在移动终端上输入密钥并按下配对,将在移动终端上观察到对拒绝通知。所以在这种情况下配对是失败的。
  3. 当b设置打开时,从移动连接到板。这里的配对失败了。当从移动端启动对时,将调用手动密钥插入UI,当插入键并按下对时,将在移动终端上显示对拒绝通知,并且配对失败。

在这些失败的senarios中,上层是响应来自芯片的"Pin代码请求负应答命令“。

我们需要这个配对过程的投入。为什么这个自动密钥生成方法和手动密钥生成方法是基于UI是打开的还是从未打开的?为什么手动钥匙箱失败了?

是否缺少任何注册表项或堆栈功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 13:08:43

这一切都与SSP( Simple )有关,SSP决定了配对认证模型。这在WEC8(2013年)中通过bthsettings下的变化而受到影响。 在WEC8下,每当从外部设备启动连接时,它们就禁用SSP (通过函数EnbaleSSP()),并在内部启动连接时启用SSP。虽然这是逻辑,但我不知道为什么会引入这个(这是一个bug,它将在即将进行的更新中得到修复,就像它们最初用于NDIS 5无线驱动程序连接一样)。 为了解决这个问题,禁用EnableSSP()。 另外,SYSGEN_BTH_BTHSSVC是SYSGEN_BTH_SETTINGS组件隐式需要的,该链接在WEC8下中断。 微软已经在2015年4月更新了修复程序。这里提供的详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29071940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档