どうもこんばんわ。
(ちょっと前だけど)ついにfengのアルバムを手に入れました。
神。
冬華さま~
本題
Android 12 のコンセプト画像?にあるこの電池残量ウイジェットってどこにあるの?
これほしいんだが
作った
スマホの電池残量とBluetoothデバイス(一台だけ)の電池残量が見れます。
Bluetoothデバイスの方は10%刻みですが仕様です(後述)
↑ 友愛進化論のフルありがとうfeng
ダウンロードとソースコード
AndroidでBluetoothデバイスの電池残量取得
(全部のデバイスで使えるわけじゃないと思う)
BluetoothDevice#getBatteryLevel()
っていうメソッドがあります。
が、@hide
と@UnsupportedAppUsage
が付いているため普通には見れません。が、逆に言えば成約はこれだけなのでリフレクションで呼び出せます。
変にシステムアプリ限定権限とかなくてよかった。
実際にペアリングデバイスを取得して電池残量を取得するコードです
ちなみにAndroid 11以前はBluetooth権限、Android 12以降はBLUETOOTH_CONNECT
とかいうダイアログで権限求める系の権限が必要です。
10%刻みで返ってくる
多分どうしようもない。サードパーティアプリの限界?
イヤホンによっては端末のBluetooth設定画面からは1%刻みの残量とか充電ケースの残量も取得できますが、これはシステムアプリ限定権限を使っている上に
そもそも権限がなくてもシステムアプリ以外メソッドが呼び出せないという二段構えで詰んでます。つまんね~
https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/bluetooth/BluetoothDevice.java;drc=master;l=2808
Android 12 以降はダイナミックカラーに対応しています
ダイナミックカラーの値を取得する場合は@android:color/system_accent*
系を使うと取得できます。
詳しくはAndroid 12のイースターエッグ見て下さい。
あとはウイジェット内で使う色をcolor.xml
で切り出して使えばいいと思います
終わりに
このアルバムが本当にfengの最後だと思うととても悲しい。
そしてエロゲ板のfengスレも解散スレに...