diff options
| author | 2023-02-23 08:52:56 +0000 | |
|---|---|---|
| committer | 2023-02-23 08:52:56 +0000 | |
| commit | fcc74c31ae81ceebcb23d79cdf0aaa036e419838 (patch) | |
| tree | ff617f0e2e30eb14d72a628dae95c3c704b5a23a | |
| parent | 2dac6d1a2f8226c75ef30249e386c2ad2084808c (diff) | |
| parent | aacb1b9d73960e90e1f32591ea9a025cad943d4d (diff) | |
Merge changes from topic "batteryStateOfHealth" am: 9614aa9ce8 am: c3563cca9a am: aacb1b9d73
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2442659
Change-Id: Idd09a529065d031d5bf1540a54734dd3d8758339
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | core/api/system-current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/os/BatteryManager.java | 21 | ||||
| -rw-r--r-- | services/core/java/com/android/server/BatteryService.java | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/health/HealthServiceWrapperAidl.java | 4 |
5 files changed, 20 insertions, 13 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index f14de5dbef3c..acf030a28955 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -32412,7 +32412,6 @@ package android.os { field public static final String EXTRA_PLUGGED = "plugged"; field public static final String EXTRA_PRESENT = "present"; field public static final String EXTRA_SCALE = "scale"; - field public static final String EXTRA_STATE_OF_HEALTH = "android.os.extra.STATE_OF_HEALTH"; field public static final String EXTRA_STATUS = "status"; field public static final String EXTRA_TECHNOLOGY = "technology"; field public static final String EXTRA_TEMPERATURE = "temperature"; diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 05722037a53b..8beb5e5d27da 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -10208,6 +10208,7 @@ package android.os { field @RequiresPermission(android.Manifest.permission.BATTERY_STATS) public static final int BATTERY_PROPERTY_CHARGING_POLICY = 9; // 0x9 field @RequiresPermission(android.Manifest.permission.BATTERY_STATS) public static final int BATTERY_PROPERTY_FIRST_USAGE_DATE = 8; // 0x8 field @RequiresPermission(android.Manifest.permission.BATTERY_STATS) public static final int BATTERY_PROPERTY_MANUFACTURING_DATE = 7; // 0x7 + field @RequiresPermission(android.Manifest.permission.BATTERY_STATS) public static final int BATTERY_PROPERTY_STATE_OF_HEALTH = 10; // 0xa field public static final int CHARGING_POLICY_ADAPTIVE_AC = 3; // 0x3 field public static final int CHARGING_POLICY_ADAPTIVE_AON = 2; // 0x2 field public static final int CHARGING_POLICY_ADAPTIVE_LONGLIFE = 4; // 0x4 diff --git a/core/java/android/os/BatteryManager.java b/core/java/android/os/BatteryManager.java index bd569b2f4f2f..6bc0f6ea947c 100644 --- a/core/java/android/os/BatteryManager.java +++ b/core/java/android/os/BatteryManager.java @@ -154,13 +154,6 @@ public class BatteryManager { /** * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: - * Int value representing the measured battery state of health (remaining - * estimate full charge capacity relative to the rated capacity in %). - */ - public static final String EXTRA_STATE_OF_HEALTH = "android.os.extra.STATE_OF_HEALTH"; - - /** - * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: * Int value representing the battery charging status. */ public static final String EXTRA_CHARGING_STATUS = "android.os.extra.CHARGING_STATUS"; @@ -358,6 +351,20 @@ public class BatteryManager { @SystemApi public static final int BATTERY_PROPERTY_CHARGING_POLICY = 9; + /** + * + * Percentage representing the measured battery state of health (remaining + * estimated full charge capacity relative to the rated capacity in %). + * + * <p class="note"> + * The sender must hold the {@link android.Manifest.permission#BATTERY_STATS} permission. + * + * @hide + */ + @RequiresPermission(permission.BATTERY_STATS) + @SystemApi + public static final int BATTERY_PROPERTY_STATE_OF_HEALTH = 10; + private final Context mContext; private final IBatteryStats mBatteryStats; private final IBatteryPropertiesRegistrar mBatteryPropertiesRegistrar; diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java index 9fa306c86fd4..92e322fa2fa6 100644 --- a/services/core/java/com/android/server/BatteryService.java +++ b/services/core/java/com/android/server/BatteryService.java @@ -154,7 +154,6 @@ public final class BatteryService extends SystemService { private int mLastMaxChargingVoltage; private int mLastChargeCounter; private int mLastBatteryCycleCount; - private int mLastBatteryStateOfHealth; private int mLastCharingState; private int mSequence = 1; @@ -528,7 +527,6 @@ public final class BatteryService extends SystemService { || mHealthInfo.batteryChargeCounterUah != mLastChargeCounter || mInvalidCharger != mLastInvalidCharger || mHealthInfo.batteryCycleCount != mLastBatteryCycleCount - || mHealthInfo.batteryStateOfHealth != mLastBatteryStateOfHealth || mHealthInfo.chargingState != mLastCharingState)) { if (mPlugType != mLastPlugType) { @@ -712,7 +710,6 @@ public final class BatteryService extends SystemService { mLastBatteryLevelCritical = mBatteryLevelCritical; mLastInvalidCharger = mInvalidCharger; mLastBatteryCycleCount = mHealthInfo.batteryCycleCount; - mLastBatteryStateOfHealth = mHealthInfo.batteryStateOfHealth; mLastCharingState = mHealthInfo.chargingState; } } @@ -746,7 +743,6 @@ public final class BatteryService extends SystemService { mHealthInfo.maxChargingVoltageMicrovolts); intent.putExtra(BatteryManager.EXTRA_CHARGE_COUNTER, mHealthInfo.batteryChargeCounterUah); intent.putExtra(BatteryManager.EXTRA_CYCLE_COUNT, mHealthInfo.batteryCycleCount); - intent.putExtra(BatteryManager.EXTRA_STATE_OF_HEALTH, mHealthInfo.batteryStateOfHealth); intent.putExtra(BatteryManager.EXTRA_CHARGING_STATUS, mHealthInfo.chargingState); if (DEBUG) { Slog.d(TAG, "Sending ACTION_BATTERY_CHANGED. scale:" + BATTERY_SCALE @@ -773,7 +769,6 @@ public final class BatteryService extends SystemService { event.putInt(BatteryManager.EXTRA_CHARGE_COUNTER, mHealthInfo.batteryChargeCounterUah); event.putLong(BatteryManager.EXTRA_EVENT_TIMESTAMP, now); event.putInt(BatteryManager.EXTRA_CYCLE_COUNT, mHealthInfo.batteryCycleCount); - event.putInt(BatteryManager.EXTRA_STATE_OF_HEALTH, mHealthInfo.batteryStateOfHealth); event.putInt(BatteryManager.EXTRA_CHARGING_STATUS, mHealthInfo.chargingState); boolean queueWasEmpty = mBatteryLevelsEventQueue.isEmpty(); @@ -1302,6 +1297,7 @@ public final class BatteryService extends SystemService { case BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE: case BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE: case BatteryManager.BATTERY_PROPERTY_CHARGING_POLICY: + case BatteryManager.BATTERY_PROPERTY_STATE_OF_HEALTH: mContext.enforceCallingPermission( android.Manifest.permission.BATTERY_STATS, null); break; diff --git a/services/core/java/com/android/server/health/HealthServiceWrapperAidl.java b/services/core/java/com/android/server/health/HealthServiceWrapperAidl.java index c7ca6acc8680..1153cc37e3da 100644 --- a/services/core/java/com/android/server/health/HealthServiceWrapperAidl.java +++ b/services/core/java/com/android/server/health/HealthServiceWrapperAidl.java @@ -146,6 +146,10 @@ class HealthServiceWrapperAidl extends HealthServiceWrapper { case BatteryManager.BATTERY_PROPERTY_CHARGING_POLICY: prop.setLong(service.getChargingPolicy()); break; + case BatteryManager.BATTERY_PROPERTY_STATE_OF_HEALTH: + healthData = service.getBatteryHealthData(); + prop.setLong(healthData.batteryStateOfHealth); + break; } } catch (UnsupportedOperationException e) { // Leave prop untouched. |