我试图确定每次蓝牙连接时是否有 a2dp 接收器连接到我的系统。我使用以下规则:
ACTION=="add", SUBSYSTEM=="bluetooth", RUN+="/bin/sh -c '/home/myuser/on-connect-bluetooth.sh'"
ACTION=="remove", SUBSYSTEM=="bluetooth", RUN+="/bin/sh -c '/home/myuser/on-connect-bluetooth.sh'"
我想过使用pactl
,但根据这个答案它只能由用户访问,而 udev 则不能。有人提到了 DBUS,但我不清楚如何通过简单的 shell 来利用它,而无需深入研究内核 API...
通过 udev 规则我知道了 devpath,/sys/devices/
但其中的信息似乎很少。
如何知道蓝牙连接/断开事件时是否存在 a2dp 接收器?
答案1
一种可能的解决方案是:尽管不完美,因为依赖于需要安装和维护的第三方工具,但是:
bluetoothctl info | grep 0000110d-0000-1000-8000-00805f9b34fb
0000110d-0000-1000-8000-00805f9b34fb
是 a2dp UID。