Jak mogę sprawdzić poziom i stan baterii (podłączony, rozładowany, ładowany itp.)? Przeszukałem dokumentację programisty i znalazłem klasę BatteryManager. Ale nie zawiera żadnych metod, tylko stałe. Jak go w ogóle używać?
Oto przykładowy kod, który wyjaśnia, jak uzyskać informacje o baterii.
Podsumowując, odbiornik rozgłoszeniowy ACTION_BATTERY_CHANGEDintencji jest konfigurowany dynamicznie, ponieważ nie można go odebrać za pośrednictwem komponentów zadeklarowanych w manifestach, a jedynie poprzez jawną rejestrację w Context.registerReceiver().
About Intent.ACTION_BATTERY_CHANGED: To jest przyklejona transmisja zawierająca stan naładowania, poziom i inne informacje o baterii. Nie można tego uzyskać za pośrednictwem komponentów zadeklarowanych w manifestach, tylko poprzez jawną rejestrację za pomocą Context.registerReceiver ().
zajęcia Android
2
@classAndroid cóż, tak, jest to wyraźnie określone w odpowiedzi.
SirDarius
Tak, @SirDarius, po prostu informując innych o tym. Najpierw zagłosowałem za twoją odpowiedzią i umieściłem ten komentarz, kiedy się dowiedziałem. :)
klasa Android
14
nie zapomnij wyrejestrowaćRegisterReceiver onPause lub onDestroy.
Dave Doga Oz
Nie można zainstalować menedżera baterii za pomocą nowego Keywork. Dlaczego proszę pana?
subhashchandru
105
Ponieważ SDK 21LOLLIPOPmożliwe jest użycie następujących wartości, aby uzyskać aktualny poziom naładowania baterii w procentach:
Czy to nie błąd 0.53F -> 52F spowodowany rzutowaniem wartości końcowej na int (w ten sposób usuwając z niej jakąkolwiek wartość dziesiętną 0.x) zamiast używania Math.round ()?
IntentFilter ifilter =newIntentFilter(Intent.ACTION_BATTERY_CHANGED);Intent batteryStatus = context.registerReceiver(null, ifilter);// Are we charging / charged?int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS,-1);boolean isCharging = status ==BatteryManager.BATTERY_STATUS_CHARGING ||
status ==BatteryManager.BATTERY_STATUS_FULL;// How are we charging?int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);boolean usbCharge = chargePlug ==BatteryManager.BATTERY_PLUGGED_USB;boolean acCharge = chargePlug ==BatteryManager.BATTERY_PLUGGED_AC;
Odpowiedzi:
Oto przykładowy kod, który wyjaśnia, jak uzyskać informacje o baterii.
Podsumowując, odbiornik rozgłoszeniowy
ACTION_BATTERY_CHANGED
intencji jest konfigurowany dynamicznie, ponieważ nie można go odebrać za pośrednictwem komponentów zadeklarowanych w manifestach, a jedynie poprzez jawną rejestrację wContext.registerReceiver()
.źródło
Ponieważ
SDK 21
LOLLIPOP
możliwe jest użycie następujących wartości, aby uzyskać aktualny poziom naładowania baterii w procentach:Przeczytaj BatteryManager | Programiści Androida - BATTERY_PROPERTY_CAPACITY
źródło
W oparciu o oficjalną dokumentację systemu Android możesz użyć tej metody w klasie pomocniczej lub użytkowej, aby uzyskać bieżący procent baterii:
źródło
Nie musisz rejestrować rzeczywistego BroadcastReceiver, ponieważ BatteryManager Androida używa lepkiej intencji:
To pochodzi z oficjalnej dokumentacji na https://developer.android.com/training/monitoring-device-state/battery-monitoring.html .
źródło
Możesz użyć tego, aby uzyskać pozostałą opłatę w procentach.
źródło
spróbuj tej funkcji nie ma potrzeby permisson ani żadnego odbiornika
źródło
Aby sprawdzić procent baterii, używamy BatteryManager , poniższa metoda zwróci procent baterii.
Link do źródła
źródło
źródło
jeden błąd w oficjalnych dokumentach, musisz użyć double zamiast float. Ponieważ 0,53F * 100F = 52F
źródło
Inne odpowiedzi nie wspominały, jak uzyskać dostęp do stanu baterii (chraging lub nie).
źródło