0

Androidサービス/ブロードキャストについてもっと知りたいと思ったので、バッテリー監視アプリを作成するための簡単なプロジェクトを開始しました。かなり良い結果になりました。数日間使用していますが、新しい機能を追加したいと思います。電話の充電/放電はいつから表示されるかです。

最初に、BoradcastReciever拡張クラスに2つの静的フィールドを作成することを考えました。ここで、バッテリーに関するデータを取得して公開します。1つは実際の状態(充電/放電)用で、もう1つは状態の変化が発生したときのデータです。 。このようにして、最後の変更を現在の時刻から差し引くだけで、電話の充電/放電がいつになるかを正確に知ることができます。

ただし、このソリューションには問題があります。ユーザーがアプリを起動すると、最初は正しいデータが表示されません。大したことはしませんが、Androidがこのデータをどこかで追跡しているのを見ました。私の電話の設定内でこの情報を見つけたので、なぜ苦労するのですか。

だから私の質問は: Androidシステムから最後の充電状態の変化の日付/時刻(形式に関係なく)を取得する簡単な方法はありますか?

BatteryManagerリファレンスを確認しましたが、受信者のインテントから情報を取得するために、探しているものにちなんで名付けられた定数はなく、使用できます。

4

1 に答える 1

1

Android OSは電源の接続/切断を追跡しますが、アプリがこのデータにアクセスできるようにすることはありません。インテントフィルターを使用して、これをすべて自分で記録する必要があります。

android.intent.action.ACTION_POWER_CONNECTED使用する2つのインテントフィルターはとandroid.intent.action.ACTION_POWER_DISCONNECTEDです。これらを使用すると、電源の接続と切断を監視できます。

このプロセスに関する情報は、ここで非常に明確に説明されています。プロセスを説明する別のブログはここにあります。

于 2012-08-06T23:07:40.023 に答える