バッテリーが 0% になるまでの時間を取得できますか? 何かを使用してCountDownTimer
、バッテリーが消費する mAh の時間を調べていますか? 誰かが私がそれをするのを手伝ってくれますか?
2 に答える
バッテリー放電の残り時間を正確に推測することはできませんが、推定することはできます。
アクション用の受信機を登録することにより、ブロードキャスト受信機の助けを借りてバッテリー寿命を得ることができますIntent.ACTION_BATTERY_CHANGED
battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
編集:
あなたがすべきことは、定期的に を取得して、battery_level
1 分あたり / 1 時間あたりにどれだけのバッテリーが消費されているかを確認し、計算を行うことです。
したがって、バッテリーが 80% で、1 時間あたり 4% 減少している場合、推定バッテリー寿命は 20 時間です。
簡単な答え: いいえ。
長い答え: はい、できます..しかし、それほど簡単ではありません..デバイスが時間ベースでどれだけのエネルギーを消費するかがわからないため、最初にそれを見つけてから、そのデータを使用して残り時間を計算する必要があります. ...
すでに推測されているように、最初はそれほど正確ではないかもしれませんが、より多くsample
のデータを使用すればするほど、そのデータはより正確になります。
最初にユーザーがアプリを開いたとき、エネルギー消費に関する十分なデータがないため、 のようなものを表示するだけですCalculating...
。ここで、サンプル時間を決定する必要があります。それはderivation
数学のようなものです..
サンプル時間が 10 秒だとします。(あなたの実際のものはもっと大きいはずです。)
.. のような名前の変数が必要level1
です。現在のレベルをそれに保存します。10 秒になるまで待ちsample time
ます。現在の値を にlevel2
保存します。level1 - level2
製品を のような別の変数に保存しますconsumed
。
これが魔法です。10 秒間にどれだけの電力が消費されたかがわかります (それがconsumed
変数です)。これからは、そのデータを使用して残り時間を計算できます。ただし、まだ 10 秒であることを忘れないでください。その 10 秒間のユーザーが負荷の高いゲームをプレイしていたり、デバイスがスタンバイ状態だったりするとどうなるでしょうか? それが正確ではない理由です。でも今まで..
できることは、consumed
変数を like という名前の配列に追加することですsample_data
。プロセスを続けて、10 秒ごとに消費量をサンプリングし、それを配列に追加します。取得するデータが多いほど、計算はより正確になります。
次に、配列内のサンプルの平均を使用して、残り時間を簡単に計算できます.. Easy Peasy :p