1. ホーム
  2. linux

[解決済み] Linuxで接続されたBluetoothデバイスのバッテリー残量を確認する

2023-04-29 20:47:06

質問

接続した bluetooth デバイスのバッテリー残量を確認するにはどうしたらよいでしょうか。デバイスは Android でバッテリー残量を表示しているので、デバイスがサポートしているのは GATT ベースのバッテリー サービス . しかし、bluetoothctl で "menu gatt" と入力し、"list-attributes [dev]" でデバイスの GATT 属性を一覧表示しても、何も表示されません。

A に同様の質問が投稿され、SO に投稿されましたが、その OP は、私のために動作しない解決策を見つけたようです。bluetoothctl で "info [dev]" を実行すると、Battery Service の UUID が表示されないのです。

私は、コマンド ラインで実行され、ディストロに依存しないソリューションを希望します。

この質問が代わりに SuperUser に投稿されるべきかどうか私に知らせてください。

どのように解決するのですか?

遅ればせながら、このPythonプロジェクトはうまくいきました。

https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level

私の無名の X5 ヘッドセットでは、57 行目のポートを 3 に変更するだけでした。ハングアップしたり、"connection refused" でエラーになったりした場合は、別のポートを試してみてください。

Python プログラムは RFCOMM 経由の AT コマンドを使用し、Pulseaudio が A2DP シンクを使用している間 (私のは再接続します) は動作するはずです。Python 2 には BT-Serial ソケットがないため、Python 3 が必要です。Windowsはbluezがないので、おそらく動作しないでしょう。基本的には、こちらのPulseaudioハックと同じことをします。 https://stackoverflow.com/a/56390625/920122

コマンドのやりとりを見たい場合は、私のデバッグ用フォークを試してみてください。 https://github.com/clst/Bluetooth_Headset_Battery_Level