BroadcastReceiverモニタ電力変化

2439 ワード

BroadcastReceiverで電力量の変化を監視することで、BroadcastReceiverが電力量の変化のブロードキャストを受信し、電力量のパーセント情報を取得することができます.
  BatteryChangedReceiver.java
public class BatteryChangedReceiver extends BroadcastReceiver{

    private static final String TAG="BatteryChangedReceiver";

    @Override

    public void onReceive(Context context,Intent intent){

        int currLevel=intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);// 

        int total=intent.getIntExtra(BatteryManager.EXTRA_SCALE, 1);// 

        int percent=currLevel*100/total;

        Log.i(TAG,"battery:"+percent+"%");

    }

}

BOMファイルにブロードキャスト受信者とブロックするアクションを登録します.
<receiver android:name=".BatteryChangedReceiver">

    <intent-filter>

        <action android:name="android.intent.action.BATTERY_CHANGED"/>

    </intent-filter>

</receiver>

時々、待機電力の変化を待つ放送ではなく、すぐに電力を取得する必要があります.次の方法で使用できます.
Intent batteryIntent=getApplicationContext().registerReceiver(null,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

int currLevel=batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);

int total=batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE,1);

int percent=currLevel*100/total;

Log.i("battery","battery:"+percent+"%");