ACTION_BATTERY_LOWdoes not contain the Extra that you are trying to read, so you get it percentlike -1every time.
@bimal , ACTION_BATTERY_CHANGED. , , , . ACTION_BATTERY_CHANGED , registerReceiver() Intent. , - :
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(ACTION_BATTERY_LOW)) {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
int percent = (level*100)/scale;
if (percent <= 10 && percent > 5) {
}
}
}
, registerReciever() null BroadcastReceiver, . , : " ?" (, , , , .)