Androidバッテリ
2716 ワード
Androidでは放送で電池の電力情報を取得する.電力量情報は、動的登録放送によってのみ取得できる.
1.0ブロードキャストを登録する2つの方法:静態登録:機能リストに登録する、ソフトウェアが携帯電話にインストールされていれば、ソフトウェアが起動しなくても、対応する放送を受け取ることができる. 動的登録:登録コードが実行するのみ、対応するブロードキャストを受信することができる.
1.4電力知識点
(1)電気量に関する放送
(2)
次の2つの一般的な値は、BatterManagerのドキュメントを参照してください.
1.2キーコード
リソースを解放するときは、まず子クラスを解放し、親クラスを解放する.例えば
1.0ブロードキャストを登録する2つの方法:
1.4電力知識点
(1)電気量に関する放送
//
public static final String ACTION_BATTERY_CHANGED = "android.intent.action.BATTERY_CHANGED";
//
public static final String ACTION_BATTERY_LOW = "android.intent.action.BATTERY_LOW";
// .
// Broadcast Action: Indicates the battery is now okay after being low.
public static final String ACTION_BATTERY_OKAY = "android.intent.action.BATTERY_OKAY";
(2)
BatteryManager
類BatteryManager
クラスには、ACTION_BATTERY_CHANGED
放送においてIntentが用いる定数および文字列が全て定義.同時に、電力量を照会する方法と、充電属性を照会する方法も提供する.次の2つの一般的な値は、BatterManagerのドキュメントを参照してください.
//
public static final String EXTRA_LEVEL = "level";
//
public static final String EXTRA_TEMPERATURE = "temperature";
1.2キーコード
リソースを解放するときは、まず子クラスを解放し、親クラスを解放する.例えば
onDestory()
で先に登録を解除し、親を呼び出すsuper().onDestory()
で/**
*
*/
private void registerBroadcast() {
//
mBatteryReceiver = new BatteryReceiver();
registerReceiver(mBatteryReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
/**
*
*/
class BatteryReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
//
setBatteryImg(level);
}
}
/**
*
*/
private void setBatteryImg(int level) {
if (level <= 0) {
ivBattery.setImageResource(R.drawable.ic_battery_0);
} else if (level <= 10) {
ivBattery.setImageResource(R.drawable.ic_battery_10);
} else if (level <= 20) {
ivBattery.setImageResource(R.drawable.ic_battery_20);
} else if (level <= 40) {
ivBattery.setImageResource(R.drawable.ic_battery_40);
} else if (level <= 60) {
ivBattery.setImageResource(R.drawable.ic_battery_60);
} else if (level <= 80) {
ivBattery.setImageResource(R.drawable.ic_battery_80);
} else if (level <= 100) {
ivBattery.setImageResource(R.drawable.ic_battery_100);
} else {
ivBattery.setImageResource(R.drawable.ic_battery_100);
}
}
/**
*
*/
@Override
protected void onDestroy() {
// :
if (mBatteryReceiver != null) {
unregisterReceiver(mBatteryReceiver);
}
Log.d(TAG, "-- onDestroy");
super.onDestroy();
}