2015-02-24 5 views
0

Я пытаюсь проверить время автономной работы моего телефона для приложения, которое я пишу. В настоящее время я пытаюсь просто отображать его на экране. Всякий раз, когда я проверяю время автономной работы, я всегда получаю то же значение, которое является значением, на котором находился уровень заряда батареи при запуске. Если я потеряю аккумулятор (и я проверю, что процентный пункт действительно упал) во время программы, уровень заряда батареи, который отображается, будет ТАКОГО уровня, который был показан в самом начале программы.Как проверить уровень заряда батареи в Android

// relevant class variables: 
Intent batteryStatus; 

Code: 
//(Function that checks battery life when device is shaken:) 
if(deviceShaken) 
{ 
int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 
int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1); 
float batteryPct = level/(float)scale; 
//Code to allow me to check battery life: 
Toast toast = Toast.makeText(getApplicationContext(), Double.toString(batteryPct), Toast.LENGTH_LONG); 
toast.show(); //ALWAYS SHOWS THE AMOUNT OF BATTERY THAT THE PROGRAM STARTED WITH 
} 

onCreateMethod() 
{ 
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
batteryStatus = getApplicationContext().registerReceiver(null,intentFilter); 
} 

Любые идеи? Спасибо.

+1

Вы добавили широковещательный приемник в манифест – Fahim

ответ

2

batteryStatus Намерение не обновляется до того, как вы извлечете дополнительные функции, чтобы они никогда не изменились. Переместите код, который у вас есть, в onCreate() в начало вашего блока if.

+1

Спасибо большое, что сработало. – s123

Смежные вопросы