Android携帯のバッテリーが完全に放電されるまでの残り時間を推定/推測するためのコードを探しています。私の検索結果は利用可能なアプリでいっぱいで、それを計算するのはほとんど役に立たないという一般的なコメントもありました. ただし、コードが必要です。どんな助けでも、大まかなスニペットであっても、始めるのに役立ちます。
3441 次
3 に答える
1
さまざまなアプリケーションやサービスがバッテリーを消費している可能性があるため、バッテリー放電の残り時間を正確に推測することはできません。したがって、異なる場合があります。
ただし、アクション Intent.ACTION_BATTERY_CHANGED のレシーバーを登録することで、ブロードキャスト レシーバーの助けを借りてバッテリー寿命を得ることができます。私の答えはキーのみです。Android Developers Web サイトから情報を入手してください。
上記の Intent アクションで BroadcastReceiver の onReceive() メソッドで以下のステートメントを使用することにより、現在使用可能なバッテリー レベル (例: 50%、60% など) を取得します。ただし、一部のアプリはより多くの電力を消費する可能性があるため、残り時間を見積もることはできません。したがって、バッテリーレベルから残り時間への変換は正しい結果をもたらさないと思います。
battery_level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
お役に立てば幸いです。
于 2012-11-22T12:28:55.373 に答える
0
@Override
public void onCreate() {
BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
int scale = -1;
int level = -1;
int voltage = -1;
int temp = -1;
@Override
public void onReceive(Context context, Intent intent) {
level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
Log.e("BatteryManager", "level is "+level+"/"+scale+", temp is "+temp+", voltage is "+voltage);
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);
}
于 2012-11-22T12:27:06.797 に答える