2014-11-03 3 views
0

Я хочу отреагировать на состояние зарядки в своем приложении.Батарея сменила приемник не работает

Я зарегистрировал приемник для него в OnCreate()

registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 

приемник выглядит следующим образом:

private BroadcastReceiver receiver = new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     plugged= intent.getIntExtra(BatteryManager.EXTRA_PLUGGED,0); 
     String test = Integer.valueOf(plugged).toString(); 
     Toast.makeText(getApplicationContext(), test, 
       Toast.LENGTH_LONG).show(); 
    } 
}; 

но даже если устройство подключено в запираемой переменной равно 0. Любая идея как это исправить?

ответ

0

Вы можете попытаться использовать BatteryManager.EXTRA_STATUS. BatteryManager.EXTRA_PLUGGED можно использовать, если вы хотите получить более подробную информацию о типе источника питания, который, как я полагаю.

IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
Intent intentResult = registerReceiver(null, filter); 

int state = intentResult.getIntExtra(BatteryManager.EXTRA_STATUS, -1); 

switch (state) { 
    case BatteryManager.BATTERY_STATUS_CHARGING: 
    case BatteryManager.BATTERY_STATUS_FULL: 
     //charging 
     break; 
    default: 
     //not charging 
} 
Смежные вопросы