Tôi đang cố gắng lấy danh sách các ứng dụng đang chạy và lượng pin được sử dụng bởi mỗi ứng dụng. Tôi có google trong một thời gian dài nhưng đã không đưa ra một giải pháp. Tuy nhiên đã có một vài tham chiếu về các lớp bên trong PowerProfile, PowerUsageSummary.Sử dụng lớp BatteryStatsImpl bên trong qua Reflection trong android
tôi đã sử dụng chúng thông qua kỹ thuật Reflection nhưng didnt có được những gì tôi đang tìm kiếm. PowerUsageSummary cho thấy các chi tiết tương tự như bạn có thể xem bằng cách vào Device Settings-> Applications-> Battery Use (Đây là cách nó có thể được nhìn thấy trong một thiết bị Samsund).
Sau đó, tôi đã sử dụng lớp PowerProfile nhưng tôi chỉ nhận được mA hiện tại được sử dụng bởi WIFI, AUDIO, VIDEO, GPS, BLUETOOTH vv (Giá trị mA không thay đổi thường xuyên. Tôi không chắc liệu giá trị có chính xác hay không). Một tham chiếu khác là lớp BatteryStatsImpl. Tôi đã kiểm tra lớp này nhưng giá trị luôn là 0. Tuy nhiên tôi đang tìm kiếm danh sách các ứng dụng đang chạy và lượng pin được sử dụng bởi mỗi ứng dụng. Bất kỳ trợ giúp được đánh giá cao.
Cảm ơn,
Đây là mã mẫu mà tôi đã thử cho lớp 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);
Hi, bạn đã tìm thấy những gì bạn đã được tìm kiếm? Nếu bạn đã làm, bạn có thể xin vui lòng gửi phát hiện của bạn? – Drimmka