![コマンドラインからBluetoothデバイスを再接続する](https://rvso.com/image/1157704/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%8B%E3%82%89Bluetooth%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%82%92%E5%86%8D%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B.png)
Bluetooth ヘッドフォンをしばらく使用すると、遅延が蓄積され、途切れ始めることがあります。手動での解決策は、ヘッドフォンを切断して再接続することですが、すぐに煩わしくなります。スクリプトを使用してヘッドフォンを再接続するにはどうすればよいですか?
答え1
次のスクリプトは、コンピューターの Bluetooth デバイス リストの最初のデバイスを検索し、それを再接続して、オーディオ プロファイルを高品質の A2DP プロファイルに切り替えます。場合によっては再接続は必要ありませんが、オーディオ プロファイルを A2DP から HSP に切り替えて元に戻すとうまくいきます (以下にコメントアウトされています)。
#!/bin/sh
device=$(echo -e 'list' | bluetoothctl | grep Device)
name=$(echo $device | sed -n 's/.* [0-9A-C:]\{17\} \(.*\)/\1/p')
address=$(echo $device | awk '{ print $4; }')
echo "Disconnect $name ($device)"
echo -e "disconnect $address" | bluetoothctl
sleep 5
echo "Connect $name ($device)"
echo -e "connect $address" | bluetoothctl
sleep 5
card=$(pacmd list-cards | grep -oP 'name: <\K(bluez[^>]*)')
# echo "Switching $card to HSP"
# pacmd set-card-profile $card headset_head_unit
# sleep 1
echo "Switching $card to A2DP"
pacmd set-card-profile $card a2dp_sink