私はこれを探していて、本当に混乱しているものを見つけました。 トーストやテキストビューで21%のような電池残量を簡単に表示する方法はありませんか? またはこれをどのように達成できますか?Android開発:バッテリー残量を表示
//サイモン
私はこれを探していて、本当に混乱しているものを見つけました。 トーストやテキストビューで21%のような電池残量を簡単に表示する方法はありませんか? またはこれをどのように達成できますか?Android開発:バッテリー残量を表示
//サイモン
あなたはエミュレータ上でバッテリーの状態を変更することを意味する場合は次の操作を行います。 Telnet経由エミュレータに接続し、ステータスと容量
> telnet localhost 5554
Android Console: type 'help' for a list of commands
OK
power ac off
OK
power discharging
OK
power capacity 21
OK
exit
>
ああを変更、うまくいけば、それはテッドが言及したページに言って何をして、トーストを表示するためのハンドラを使用することができます。これはあなたのアクティビティに追加する必要があるコードです。
registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
:これは、さまざまなエキストラとIntent
を返します
(注:必要に応じてメモリから、調整してくださいタイピング)
private Handler handler = new Handler;
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(final Context context, Intent intent) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
Log.i(TAG, "level: " + level + "; scale: " + scale);
int percent = (level*100)/scale;
final String text = String.valueOf(percent) + "%";
handler.post(new Runnable() {
public void run() {
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
});
}
};
申し訳ありません、BatteyManager.getLevel()のようですが、そこにはありません。だから基本的には、私は自分の携帯電話でどれくらいのバッテリー報酬を持っているかを表示します – carefacerz
値を表示するコードで回答を更新しました。 – Augusto
@Augusto:理想的には、 "level"の代わりに 'BatteryManager.EXTRA_LEVEL'を使用してください。また、レベルはパーセンテージではありません。これは0から 'BatteryManager.EXTRA_SCALE'余分な値までの範囲の値です。多くのデバイスでは、*は* 100ですが、それを想定していません。 – CommonsWare
は呼び出し、今のバッテリーレベルを取得するにはBatteryManager
クラスで文書化されています。残りの割合を確認するには、BatteryManager.EXTRA_LEVEL
とBatteryManager.EXTRA_SCALE
を使用してください。
バッテリーの交換時期を知る必要がある場合は、答えに記載されているBroadcastReceiver
アプローチ@Augustoを使用してください。
パーフェクトワンライナー... :) – TacB0sS
public static String batteryLevel(Context context)
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
int percent = (level*100)/scale;
return String.valueOf(percent) + "%";
}
これは使用できます。
private void batteryLevel() {
BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
//context.unregisterReceiver(this);
int rawlevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
int level = -1;
if (rawlevel >= 0 && scale > 0) {
level = (rawlevel * 100)/scale;
}
batterLevel.setText("Battery Level Remaining: " + level + "%");
}
};
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryLevelReceiver, batteryLevelFilter);
}
[SDKでのAndroidのバッテリー](http://stackoverflow.com/questions/1805895/android-battery-in-sdk) –
の可能な重複ファイルシステムからそれを読みたい場合は、あなたが得ることができます/ sys/class/power_supply/battery/capacityからのデフォルト値は50です。 – JPM