2020年7月30日木曜日

Android10 充電ケーブル 抜き差しのイベント来ない?

充電ケーブルの抜き差しのイベントを検知するアプリを作っているのですが、
Android10でテストしたところ、うまく動作しないことがわかりました。
(イベントを検知するやり方を記載した記事はこちらです。)

プログラムは、公式の情報を参考にしているので、間違えはなさそう。
他のOSのバージョンもテストしたところ、Android8, Android9は問題なし。

ちなみにテストはemulatorで実施しており、emulatorの電源の状態を変更するコントロールでAC charger / noneを切り替えて実施してます。

環境

Android Studio : 
スマホ : emulator Pixel 3a API29 (android10)

これが原因か?①

emulatorを起動すると、常にUSB充電中となっていることがわかりました。

これについては、開発モードにはいって(ビルド番号を何回か連打)、USBデバックをOFFにすると解除されることが分かりました。

→ USB充電中は解除されたが、電源のイベントを拾えないのは変わらず。

※Android9もUSBデバックはONだったので、emulatorはONになっているのかもしれません。


これが原因か?②

emulator (もしくはOS)が悪そう。
emulatorのバッテリーのコントロールパネルで電源の状態を変更しても、
emulator側に反映されていないことが分かりました。

左がemulator, 右がコントロールパネルです。
levelやconnectionがあっていないことが分かります。



これが原因か?③

②の原因ですが、Android10で「電池使用料のトラッキング」について変更が入ってます。
これが原因かどうかはもうちょっと情報を集めてみようと思います。

以下引用です。
------------------------
Android 10 以降では、主要な充電イベントの後にデバイスのプラグを抜くと、SystemHealthManager によって電池使用量の統計情報がリセットされます。主要な充電イベントとはつまり、デバイスが完全に充電されること、またはほとんど電池残量がない状態からほぼ完全に充電された状態になることです。

Android 10 より前は、電池残量がほとんど変化していなくても、デバイスのプラグを抜くと電池使用量の統計情報がリセットされていました。
------------------------


結論

すみません。まだよくわかってません。





0 件のコメント:
コメントを投稿