RaspberryPi 蓝牙文件应用程序总是要求在 iOS 上配对
Posted
技术标签:
【中文标题】RaspberryPi 蓝牙文件应用程序总是要求在 iOS 上配对【英文标题】:RaspberryPi bluetooth le application always asks for pairing on iOS 【发布时间】:2021-10-08 01:40:02 【问题描述】:我目前正在开发一个连接到 Ble 外围设备并从中读取数据的移动应用程序。为了测试连接是否正常。我编写了一个小型 C# 应用程序,它通过 DBus 和 BlueZ 使用 RaspberryPi4 蓝牙。
一切正常,除了当连接到 ios 时,树莓派发出配对请求,尽管我没有任何加密特征。
我在Apple forum 上看到这是因为蓝牙会自动尝试读取手机的电池电量。但遗憾的是,即使在修复建议之后,我也收到了配对请求。
有人知道我该如何解决这个问题吗?
提前致谢
【问题讨论】:
在 Raspberry Pi 上,sudo btmon
在单独的终端中运行,以查看有关导致配对请求的原因的更详细的调试信息。您还可以将 btmon 信息写入文件并将其放入wireshark
以帮助处理信息。例如sudo btmon -w pairing_problem_ios.log
。我认为您链接到的文档是错误的。应编辑以进行永久更改的文件是:/lib/systemd/system/bluetooth.service
【参考方案1】:
我相信禁用 /etc/bluetooth/main.conf
中的这个 bluez 配置选项会阻止 pi 尝试从 iOS 设备读取特征,如果这是问题的话:
# Do reverse service discovery for previously unknown devices that connect to
# us. For BR/EDR this option is really only needed for qualification since the
# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
# this disables the GATT client functionally so it can be used in system which
# can only operate as peripheral.
# Defaults to 'true'.
#ReverseServiceDiscovery = true
【讨论】:
以上是关于RaspberryPi 蓝牙文件应用程序总是要求在 iOS 上配对的主要内容,如果未能解决你的问题,请参考以下文章
Arduino - Raspberry Pi,使用 D-BUS API 的蓝牙连接
Pulseaudio module-combine-sink 总是抛出失败