Android 11の正式版が出ましたね。おめでとうございます
自己PR と 長所短所 って違うのか
Device Control #とは
家電操作用クイック設定パネル。電源長押しで開ける。
↑こんなやつ。
なお、Reactive Streamが何なのかわからんのでそこはコピペで頼む
環境
つくる
公式の解説です:https://developer.android.com/guide/topics/ui/device-control
Android Manifest
サービスを宣言します。
android:label
がデバイスコントロールアプリ一覧に表示される名前だって~~(誰も教えてくれないAndroid)~~
DeviceControlService.kt
を作成します。
できたら、以下のようにControlsProviderService
を継承させます。
デバイスコントロールを作成する関数を作る
今回は値の変更ができるコントロール(RangeTemplate
)を作成します。
なお今回は値をハードコートしますが本来は
- createPublisherForAllAvailable()
- ここではユーザーに利用可能なコントロールを表示
- ので値は適当でもいい
- createPublisherFor()
- ここではユーザーが実際に操作するコントロールを表示
- よって値はちゃんと入れておかないといけない
createPublisherForAllAvailable()
ここではユーザーに利用可能なコントロールを表示させるときに呼ばれる。
詳しくないのでコピペ
createPublisherFor()
ここではユーザーが選択したコントロールが表示される時に呼ばれます?
電源ボタン長押しで表示させたときですね。
ここではユーザーがコントロールを操作した時に呼ばれます。
RangeTemplate
の値は第二引数をFloatAction
でキャストすれば取得できます。
できたら実行して、電源ボタン長押し→︙→コントロールを追加へ進み、
追加してみてください。
追加するとこのように表示されるはずです。
お疲れ様です。8888888888
全部くっつけたコード
GitHubです:https://github.com/takusan23/DeviceControlSample
おわりに
今回のイースターエッグのソースはここ?:https://github.com/aosp-mirror/platform_frameworks_base/blob/android11-release/packages/EasterEgg/src/com/android/egg/neko/NekoControlsService.kt
背面タップ、結局実装されなかった