问题标签 [bluez]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Qt C++ BlueZ 5 QDbus 库
在 BlueZ 5 中,DBus API 发生了很大变化。我之前有一个基于此的 BlueZ 4 的工作 QDbus 控制器库:https ://gitorious.org/qt-bluez-demos/
我一直在谷歌搜索,找不到任何现有的起点来将我的 BlueZ 4 库转换为 BlueZ 5。
注意:我使用的是 Qt 4.8,但似乎 Qt 5.0 有一些 QBluetooth 命名空间,但它还没有针对 BlueZ 5 进行更新:
该库也仅限 BlueZ 4:
任何人都可以指出一些现有的代码吗?谢谢!
linux - 如何重建bluez
如何重建bluez?可能吗?例如,假设我想更改 avctp.c 中的某些内容。我从他们的网站下载了最新的 bluez 版本并进行了我需要的更改。现在,我如何使更改生效;即我需要做什么来重建蓝牙?
注意:我使用的是 Ubuntu 12.04
android - 如何使用 bluez API 扫描低功耗蓝牙设备
我是使用 BlueZ 编程低功耗蓝牙的新手。
我想开发一个本机代码 c 来使用 Android 4.0.3 下的蓝牙低功耗 BlueZ API 扫描附近的设备。
有人知道我应该使用哪种 BlueZ 方法吗?
android - 使用bluez在android下移植BLE
我是新的 bluez 用户,我正在尝试使用 bluez API 并使用 NDK 开发本机代码 c,以使 android 4.0.3 支持 BLE 我阅读了 Bluez 的代码源,但我找不到确切的功能我应该像连接到 GATT 一样使用吗?任何帮助将不胜感激。
谢谢!
android - 无法连接到蓝牙/BlueZ 服务器:无法创建 RFCOMM 套接字
我正在尝试在我的 Linux 笔记本电脑和 Android 手机之间创建一个简单且自定义的蓝牙连接。在 Linux 方面,我使用 BlueZ libbluetooth 库来设置服务器。它的代码与我在 github 上看到的其他代码非常相似:
我能够在 Linux 中运行服务器端代码而不会出错:
然后我可以sdptool
用来查看我的 RFCOMM 套接字和服务(描述、通道号和所有其他信息看起来都正确):
现在,在 Android 方面,我首先通过标准设置屏幕将手机与 Linux 服务器配对。配对后,我会使用 Android 端的代码来扫描蓝牙设备,如果它是我的 Linux 设备,那么我会尝试连接到它。我尝试了人们在堆栈溢出时建议的两种不同方法来建立连接:
tmp.connect()
当我实际尝试调用时,我不断收到以下异常:
有没有人看到我在这里尝试创建连接时做错了什么?请注意,当我调用时,我确实得到了一个返回的 UUID UUID uuid = device.getUuids()[0].getUuid();
...这让我相信配对是好的,它返回 value 00001103-0000-1000-8000-00805f9b34fb
。
dbus - Bluez(蓝牙)在连接时没有发送 DBUS method_call SelectConfiguration 吗?如果是这样,我该如何抓住它?
更新:尚未解决,但解决方案的一部分。见下文。
我正在尝试通过蓝牙将我的 iPod 或其他智能设备连接到我的笔记本电脑(Kubuntu 13.10),并将 a2dp 编码的音乐流式传输到蓝牙扬声器。别介意我为什么不直接连接它们。我在让设备实际配对然后同时连接时遇到了很多麻烦,但现在我能够做到这一点。有一百万篇文章描述了通过更改 .asoundrc、/etc/bluetooth/audio.conf 以及通过 PulseAudio 的控制器加载环回模块来连接 BT 耳机的不同方法。但是,我永远无法让 PulseAudio 始终加载源和接收器,所以我放弃了这个想法并开始关注 James B 的这篇精彩文章:http: //jamesbond3142.no-ip.org/blog/ ?viewCat=Bluetooth
我得到了编译的代码。它使用(更新的?)用于 BlueZ 的 DBus API。按照他的指示,我能够将音乐导入或导出 a2dp“服务器”,但没有声音。在代码中,他等待两个 DBUS 方法调用 SelectConfiguration 和 SetConfiguration 以获得“传输”,我认为这是一个句柄或文件描述符,描述了音频应该去往/来自哪里。但是,这些事件的处理程序永远不会被调用。我使用本指南设置 dbus-monitor 在系统总线上监听这些调用:https ://wiki.ubuntu.com/DebuggingDBus 。但是,方法调用不显示。再一次,我尝试在系统总线上收听任何方法调用,并且有一些在我知道正在调用的 dbus-monitor 中没有显示。(即注册端点)
我看到来自 org.bluez 的信号,但没有方法调用。在详细模式下运行 bluetoothd 时,当我连接设备时,我会得到类似的结果:
bluetoothd[12118]: 音频/a2dp.c:setup_ref() 0x7f9e8ffbdac0: ref=2 bluetoothd[12118]: audio/avdtp.c:avdtp_set_configuration() 0x7f9e8ffd03f0: int_seid=1, acp_seid=1 bluetoothd[12118]: 音频/a2dp .c:setup_unref() 0x7f9e8ffbdac0: ref=1 bluetoothd[12118]: audio/avdtp.c:session_cb() bluetoothd[12118]: audio/avdtp.c:avdtp_parse_resp() SET_CONFIGURATION 请求成功 bluetoothd[12118]: audio/a2dp .c:setconf_cfm() 源 0x7f9e8ffa4600: Set_Configuration_Cfm bluetoothd[12118]: audio/avdtp.c:avdtp_sep_set_state() 流状态已更改:IDLE -> CONFIGURED bluetoothd[12118]: audio/avdtp.c:session_cb() bluetoothd[12118] : audio/avdtp.c:avdtp_parse_resp() OPEN 请求成功
但在另一篇文章中,我看到有人有这个:
bluetoothd[8315]: 音频/a2dp.c:setup_ref() 0x7f1f8300b000: ref=2 bluetoothd[8315]: audio/avdtp.c:avdtp_set_configuration() 0x7f1f83012250: int_seid=2, acp_seid=1 bluetoothd[8315]: 音频/a2dp .c:setup_unref() 0x7f1f8300b000: ref=1 bluetoothd[8315]: audio/avdtp.c:session_cb() bluetoothd[8315]: audio/avdtp.c:avdtp_parse_resp() SET_CONFIGURATION 请求成功 bluetoothd[8315]: audio/a2dp .c:setconf_cfm() Sink 0x7f1f82fc3210: Set_Configuration_Cfm bluetoothd[8315]: audio/media.c:media_endpoint_async_call() 调用 SetConfiguration: name = :1.65 path = /MediaEndpoint/A2DPSink
bluetoothd[8315]: audio/avdtp.c:avdtp_sep_set_state() 流状态改变:IDLE -> CONFIGURED bluetoothd[8315]: audio/avdtp.c:session_cb() bluetoothd[8315]: audio/avdtp.c:avdtp_parse_resp() OPEN 请求成功
此时我有两个理论:1)当我的设备连接时,BlueZ 没有将它发送到我正在观看的总线 2)我没有正确观看(是否还需要使用 dbus_bus_add_match () 添加 method_calls ?)
我很难相信第二个,因为 James B 的代码为他工作,而我没有修改它。我正在使用 bluez 4.101 版。(我认为和他一样)很难找到 BlueZ 调用这些方法的确切条件。
当我启动程序时,我的 syslog 会这样说:
bluetoothd[8519]:端点注册:发送方=:1.166 path=/MediaEndpoint/A2DPSource
并在程序退出时取消注册。
目前我想不出要添加的其他细节,但如果我没有提供足够的信息,我很高兴。提前致谢。
更新 有点尴尬,但我今天绞尽脑汁想为什么 LINUX 系统不会获得文件句柄......嗯......所以我将sudo附加到程序调用(James B 的 a2dp-alsa 程序)并且它起作用了。至少对于输入设备。输出(BT 扬声器)仍然没有任何结果,但我会尽快弄清楚并在此处发布结果。
我在哪里收集我的菜鸟徽章?:(
linux - 如何从 iBeacon / BLE 检索广告负载
如何在 Linux 中检索蓝牙 LE 发射器的广告负载?
具体来说,我已经使用 hcitool 配置了 arduino 和 R-PI 以充当 iBeacons。
我正在寻找的是一个命令来打印出设备的当前广告有效负载。
iphone - 使用 bluez 5.17 将 iPhone 与 Ubuntu 配对
我正在使用图形界面查找 iPhone 和我的笔记本电脑并将其配对。在 iPhone 上我可以看到 6 位数字,但在 ubuntu bluez 界面上我看不到。当我使用 hcidump 观察蓝牙流量时,我可以看到以下内容: 在发送确认号码的请求后,我的计算机似乎收到了来自 iPhone 的否定回复,因此退出了配对过程。
我在我的计算机上编译了 bluez-tools 以使用“btmgmt pair”进行配对,这会导致完全相同的错误。使用 bluez-simple-agent 也可以。
如果你能帮助我,我会很高兴!
python - 使用 PyBluez 编写 HID 服务
需要使用 PyBluez 在 Linux 上模拟 HID 设备。我有一个 HID 设备(我将模拟它)。
sdptool browse
命令向我显示它提供以下服务
所以我需要用python创建一个与此等效的服务。问题是它完全忽略Service class ID list
了我提供的内容。
这是代码:
现在我sdptool
使用另一个蓝牙适配器运行,这就是我看到的
服务类别 ID 列表在哪里?
根据这本书(第 65 页),它应该在那里,但事实并非如此。
这里也是 HCI 配置
我很乐意在这方面得到任何帮助。书籍、文档、示例......任何可能有助于模拟 HID 设备的东西。
** 更新 **
看起来我在连接级别上也有问题。我的 HID 主机在配对后会自动断开连接。
通常是否有可能使我的蓝牙适配器表现得像 HID 设备?如何?
c++ - C++:使用迭代器遍历 DBUS 消息以查找 BlueZ 5 适配器
我正在尝试使用 BlueZ 5 更新的 Dbus API 查找可用的蓝牙适配器。
与 BlueZ 4 不同,BlueZ 4 有一个专门用于此的方法(即 org.bluez.Manager.FindAdapter()),BlueZ 5 使用 FreeDesktop ObjectManager 接口和 GetManagedObjects() 方法。此方法返回一个非常大的结果数组:
BlueZ 5 API Intro and Porting Guide说,“默认适配器的概念总是有点模糊,并且值无法更改,因此如果应用程序需要类似的东西,他们可以例如选择他们遇到的第一个适配器GetManagedObjects 回复。 ”
我已经使用迭代器编写了 C++ 代码来执行此操作(我没有使用 Python 的经验),但是对于看起来如此简单的事情来说真的很长:
换句话说,我必须为树的每个分支定义一个新的迭代器,只是为了每次都找到一个位于固定位置的字符串。(array[x]->secondfield[2]->firstfieldstring) 我的问题(最后,我知道)是有人能指出一个更优雅/更快的解决方案吗?