Próbuję uzyskać listę uruchomionych aplikacji i ilość baterii używanej przez każdego z nich. Mam google przez długi czas, ale nie wymyśliłem rozwiązania. Jednak pojawiło się kilka odniesień do klas wewnętrznych PowerProfile, PowerUsageSummary.Używanie klasy wewnętrznej BatteryStatsImpl przez odbicie w Androidzie
Użyłem ich przez technikę Refleksji, ale nie dostałem tego, czego szukałem. PowerUsageSummary pokazuje te same szczegóły, co możesz zobaczyć przechodząc do Device Settings-> Applications-> Battery Use (tak można to zobaczyć w urządzeniu Samsund).
Następnie użyłem klasy PowerProfile, ale mam tylko mA prądu wykorzystywanego przez WIFI, AUDIO, VIDEO, GPS, BLUETOOTH itp. (Wartości mA nie zmieniają się tak często.) Nie jestem pewien, czy wartości są prawidłowe). Kolejnym odniesieniem była klasa BatteryStatsImpl. Testowałem tę klasę, ale wartości zawsze wynoszą 0. Nadal szukam listy uruchomionych aplikacji i ilości baterii używanych przez każdego z nich. Każda pomoc jest doceniana.
Dzięki,
Oto przykładowy kod, który próbowałem dla klasy BatteryStatsImpl.
String BATTERY_PROFILE_CLASS = "com.android.internal.os.BatteryStatsImpl";
Object mBatteryProfile = Class.forName(BATTERY_PROFILE_CLASS).getConstructor().newInstance();
Method batteryMeth = Class.forName(BATTERY_PROFILE_CLASS).getMethod("getBatteryUptime", long.class);
Object arglist1[] = new Object[1];
arglist1[0] = System.currentTimeMillis();
// This is to calculate the batteryUpTime since the current time.
Long batteryUptime = (Long) batteryMeth.invoke(mBatteryProfile, arglist1);
Method dischargeMeth = Class.forName(BATTERY_PROFILE_CLASS).getMethod("getDischargeStartLevel");
// This is to calculate the dischargeTime of the device battery
Integer dischargeTime = (Integer) dischargeMeth.invoke(mBatteryProfile);
Cześć, nie znajdziesz to, czego szukałeś? Jeśli tak, czy mógłbyś opublikować swoje wyniki? – Drimmka