我正在测试在 Android 设备上运行的蓝牙应用程序。我在设备上注册了一个虚拟服务,并从运行 Ubuntu 12.04 的 PC 打开了到它的 RFCOMM 通道:
bluez-test-serial 7C:E9:D3:DE:03:0A 43502780-ef1e-11e2-b778-0800200c9a66
它生成/dev/rfcomm0
正常,但在我捕获设备端的通道输入后立即生成。上面写着AT+GC
。令人惊讶的是,这种情况似乎只发生在我第一次登录后。
我查遍了 BlueZ 的资源,但没有成功。
有谁知道这个未经请求的 AT 命令被馈送到通道的来源是什么?
答案1
发送它的程序是modem-manager
.我也遇到了这个问题。我从来没有弄清楚如何让它忽略我的设备,所以我只是卸载了该程序。不确定这是否是您可以接受的解决方案。
答案2
这是一个非常古老的问题,但如果有人通过谷歌最终到达这里,对我有用的一个简单的解决方案是创建一个/etc/udev/rules.d/99-rfcomm.rules
包含以下内容的文件:
# ignore rfcomm0 device for now
KERNEL=="rfcomm0", ENV{ID_MM_DEVICE_IGNORE}="1"
ModemManager 将来将忽略该设备。注意:这是一个包罗万象的规则,将匹配任何 rfcomm 设备,因此如果您将来确实想将其用作调制解调器,则必须再次禁用该规则。