Qt 是不是支持 windows 蓝牙 API?

Posted

技术标签:

【中文标题】Qt 是不是支持 windows 蓝牙 API?【英文标题】:Does Qt support the windows bluetooth API?Qt 是否支持 windows 蓝牙 API? 【发布时间】:2011-08-09 06:42:29 【问题描述】:

谁能告诉我Qt是否支持windows蓝牙API? 如果可以,请分享一些有关如何使用它的信息?

【问题讨论】:

不,QT 表示 Eclipse QT (CDT) 你在这里混淆了很多东西。首先是Qt(小t)。 Eclipse CDT 可能是您的 IDE,但据我所知与 Qt 无关。快速的 Google 得知有类似 QBluetooth 的东西,但我从未使用过它,也不知道它有多大用处。 @Bart:我们正在询问Qt中对winodws蓝牙API的支持 @Bart:感谢您的链接。我正在通过链接。但是我在这里有一个疑问,假设用于 Symbian OS 的 Qt 将与 Windows 相同的 QBluetooth 库和步骤工作? 【参考方案1】:

自上次给出回复以来,这个问题的答案发生了一些变化。 Qt 5.2 版为 Linux/BlueZ 和 BlackBerry 设备实现了蓝牙 API。 Qt 5.3 包括对 android 的蓝牙支持。 Linux 设备可以使用 RFCOMM 或 L2CAP 协议进行连接。 Android 和黑莓只有 RFCOMM。

Windows 上的蓝牙仍然不受支持,但这个事实很难找到。目前,如果您在 Windows 上创建 QBluetoothSocket 并告诉它连接到某个地址,即使有内置的错误报告机制,它也会静默失败。如果你使用QBluetoothLocalDevice 接口来检索设备,你会得到一个空列表。虽然类文档没有提到这一事实,Bluetooth Overview 澄清了这一点

目前该 API 在 Android、BlackBerry 10 和 Linux (Bluez 4.x) 上受支持。

【讨论】:

【参考方案2】:

从 Qt 5.11 开始,Qt documentation 说:

尽管还没有 Win32 端口,但 WinRT 后端是 如果 win32 目标平台支持所需的,则自动使用 WinRT API。 最低要求是 Windows 10 版本 1507 自 Windows 10 版本 1607 以来,服务发现略有改进。 因此排除了 Windows 7 和 8.x 目标。

Bluetooth Chat Example 使用以下设置成功测试:

Qt 5.11.1

Win10 Qt 套件 MSVC2017 64 位。

【讨论】:

【参考方案3】:

作为 2020 年 1 月 documentation,Qt 5.14 正式支持 win32 构建的“经典蓝牙”。

但是,它似乎并不完整,here 提到了查找设备的限制:

...只能找到之前已通过 Windows 设置配对的设备

【讨论】:

以上是关于Qt 是不是支持 windows 蓝牙 API?的主要内容,如果未能解决你的问题,请参考以下文章

QT 调用win32 api

Spyder3 Python IDE 不启动:“此 Windows 版本不支持所需的蓝牙 API”

QT开发笔记(USB Bluetooth)

Qt实用技巧:Qt中添加对windows api的支持,显示/隐藏任务栏和桌面(解决无法找到windows api)

Qt实用技巧:Qt中添加对windows api的支持,显示/隐藏任务栏和桌面(解决无法找到windows api)

如何检测我的苹果设备是不是支持蓝牙低功耗