0

バッテリーが 0% になるまでの時間を取得できますか? 何かを使用してCountDownTimer、バッテリーが消費する mAh の時間を調べていますか? 誰かが私がそれをするのを手伝ってくれますか?

4

2 に答える 2

2

バッテリー放電の残り時間を正確に推測することはできませんが、推定することはできます。

アクション用の受信機を登録することにより、ブロードキャスト受信機の助けを借りてバッテリー寿命を得ることができますIntent.ACTION_BATTERY_CHANGED

battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);

編集:

あなたがすべきことは、定期的に を取得して、battery_level1 分あたり / 1 時間あたりにどれだけのバッテリーが消費されているかを確認し、計算を行うことです。

したがって、バッテリーが 80% で、1 時間あたり 4% 減少している場合、推定バッテリー寿命は 20 時間です。

于 2013-07-03T11:15:23.213 に答える
1

簡単な答え: いいえ。

長い答え: はい、できます..しかし、それほど簡単ではありません..デバイスが時間ベースでどれだけのエネルギーを消費するかがわからないため、最初にそれを見つけてから、そのデータを使用して残り時間を計算する必要があります. ...

すでに推測されているように、最初はそれほど正確ではないかもしれませんが、より多くsampleのデータを使用すればするほど、そのデータはより正確になります。

最初にユーザーがアプリを開いたとき、エネルギー消費に関する十分なデータがないため、 のようなものを表示するだけですCalculating...。ここで、サンプル時間を決定する必要があります。それはderivation数学のようなものです..

サンプル時間が 10 秒だとします。(あなたの実際のものはもっと大きいはずです。)

.. のような名前の変数が必要level1です。現在のレベルをそれに保存します。10 秒になるまで待ちsample timeます。現在の値を にlevel2保存します。level1 - level2製品を のような別の変数に保存しますconsumed

これが魔法です。10 秒間にどれだけの電力が消費されたかがわかります (それがconsumed変数です)。これからは、そのデータを使用して残り時間を計算できます。ただし、まだ 10 秒であることを忘れないでください。その 10 秒間のユーザーが負荷の高いゲームをプレイしていたり​​、デバイスがスタンバイ状態だったりするとどうなるでしょうか? それが正確ではない理由です。でも今まで..

できることは、consumed変数を like という名前の配列に追加することですsample_data。プロセスを続けて、10 秒ごとに消費量をサンプリングし、それを配列に追加します。取得するデータが多いほど、計算はより正確になります。

次に、配列内のサンプルの平均を使用して、残り時間を簡単に計算できます.. Easy Peasy :p

于 2013-07-03T11:34:15.140 に答える