Bluetoothデバイスが接続されたときにスクリプトを実行する

Bluetoothデバイスが接続されたときにスクリプトを実行する

特定のBluetoothデバイスが接続されるとすぐにスクリプトを自動的に実行しようとします。そのために新しいUDEVルールを作成しました。私が経験している問題は、接続が確立されてもルールが実行されないことです。

現在、私のルールにはデバイスのMACアドレスのみが含まれています。

ACTION=="add", SUBSYSTEM=="bluetooth", ATTRS{address}=="a0:b1:c2:e3:f4:56", RUN+="/home/myhome/my_script"

ルールに追加できるように、より多くのデバイスの詳細を見つけるにはどうすればよいですか?

デバイスを接続した後、次のUDEVイベントを表示できます。

$ udevadm monitor
UDEV  [7704849.324977] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.0/bluetooth/hci0/hci0:12 (bluetooth)

上記の活動から得られる情報はありますか?

UDEVルールの場所にルールを配置しましたが、/etc/udev/rules.d/まだ/lib/udev/rules.d/実行されていません。私はLinux Mintシステムを使用しています。

このルールは、ディレクトリ内の他のすべてのルールと同じ権限を持ちます。

-rw-r--r-- 1 root root  369 Oct 17 13:07 50-my_bluetooth_rule.rules

また、50から90のルール番号を試してみました。まだ成功していません。

ベストアンサー1

次のようにudevルールをインポートしsudo tail -f /var/log/syslogidVendor作成するために使用されます。idProduct/etc/udev/rules.d/50-my_bluetooth_rule.rules

ACTION=="add" , SUBSYSTEM=="usb", ATTR{idVendor}=="xxx", ATTR{idProduct}=="yyy", RUN+="/home/myhome/my_script"

ランニング:

sudo service udev restart
sudo tail -f /var/log/syslog

Bluetooth デバイスを再接続します。loggerを使用してbashスクリプトにメッセージを作成できますsyslog

おすすめ記事