summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jack Wu <wjack@google.com> 2023-02-23 08:52:56 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-02-23 08:52:56 +0000
commitfcc74c31ae81ceebcb23d79cdf0aaa036e419838 (patch)
treeff617f0e2e30eb14d72a628dae95c3c704b5a23a
parent2dac6d1a2f8226c75ef30249e386c2ad2084808c (diff)
parentaacb1b9d73960e90e1f32591ea9a025cad943d4d (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.txt1
-rw-r--r--core/api/system-current.txt1
-rw-r--r--core/java/android/os/BatteryManager.java21
-rw-r--r--services/core/java/com/android/server/BatteryService.java6
-rw-r--r--services/core/java/com/android/server/health/HealthServiceWrapperAidl.java4
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.