Merge changes from topic "batteryStateOfHealth" am: 9614aa9ce8

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2442659

Change-Id: Id9c59f7265f2494101e7bbcdcdb7c9d334f29e43
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jack Wu
2023-02-23 07:30:04 +00:00
committed by Automerger Merge Worker
5 changed files with 20 additions and 13 deletions

View File

@@ -30918,7 +30918,6 @@ package android.os {
field public static final String EXTRA_PLUGGED = "plugged"; field public static final String EXTRA_PLUGGED = "plugged";
field public static final String EXTRA_PRESENT = "present"; field public static final String EXTRA_PRESENT = "present";
field public static final String EXTRA_SCALE = "scale"; 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_STATUS = "status";
field public static final String EXTRA_TECHNOLOGY = "technology"; field public static final String EXTRA_TECHNOLOGY = "technology";
field public static final String EXTRA_TEMPERATURE = "temperature"; field public static final String EXTRA_TEMPERATURE = "temperature";

View File

@@ -9155,6 +9155,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_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_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_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_AC = 3; // 0x3
field public static final int CHARGING_POLICY_ADAPTIVE_AON = 2; // 0x2 field public static final int CHARGING_POLICY_ADAPTIVE_AON = 2; // 0x2
field public static final int CHARGING_POLICY_ADAPTIVE_LONGLIFE = 4; // 0x4 field public static final int CHARGING_POLICY_ADAPTIVE_LONGLIFE = 4; // 0x4

View File

@@ -152,13 +152,6 @@ public class BatteryManager {
*/ */
public static final String EXTRA_CYCLE_COUNT = "android.os.extra.CYCLE_COUNT"; public static final String EXTRA_CYCLE_COUNT = "android.os.extra.CYCLE_COUNT";
/**
* 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}: * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:
* Int value representing the battery charging status. * Int value representing the battery charging status.
@@ -358,6 +351,20 @@ public class BatteryManager {
@SystemApi @SystemApi
public static final int BATTERY_PROPERTY_CHARGING_POLICY = 9; 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 Context mContext;
private final IBatteryStats mBatteryStats; private final IBatteryStats mBatteryStats;
private final IBatteryPropertiesRegistrar mBatteryPropertiesRegistrar; private final IBatteryPropertiesRegistrar mBatteryPropertiesRegistrar;

View File

@@ -150,7 +150,6 @@ public final class BatteryService extends SystemService {
private int mLastMaxChargingVoltage; private int mLastMaxChargingVoltage;
private int mLastChargeCounter; private int mLastChargeCounter;
private int mLastBatteryCycleCount; private int mLastBatteryCycleCount;
private int mLastBatteryStateOfHealth;
private int mLastCharingState; private int mLastCharingState;
private int mSequence = 1; private int mSequence = 1;
@@ -508,7 +507,6 @@ public final class BatteryService extends SystemService {
|| mHealthInfo.batteryChargeCounterUah != mLastChargeCounter || mHealthInfo.batteryChargeCounterUah != mLastChargeCounter
|| mInvalidCharger != mLastInvalidCharger || mInvalidCharger != mLastInvalidCharger
|| mHealthInfo.batteryCycleCount != mLastBatteryCycleCount || mHealthInfo.batteryCycleCount != mLastBatteryCycleCount
|| mHealthInfo.batteryStateOfHealth != mLastBatteryStateOfHealth
|| mHealthInfo.chargingState != mLastCharingState)) { || mHealthInfo.chargingState != mLastCharingState)) {
if (mPlugType != mLastPlugType) { if (mPlugType != mLastPlugType) {
@@ -684,7 +682,6 @@ public final class BatteryService extends SystemService {
mLastBatteryLevelCritical = mBatteryLevelCritical; mLastBatteryLevelCritical = mBatteryLevelCritical;
mLastInvalidCharger = mInvalidCharger; mLastInvalidCharger = mInvalidCharger;
mLastBatteryCycleCount = mHealthInfo.batteryCycleCount; mLastBatteryCycleCount = mHealthInfo.batteryCycleCount;
mLastBatteryStateOfHealth = mHealthInfo.batteryStateOfHealth;
mLastCharingState = mHealthInfo.chargingState; mLastCharingState = mHealthInfo.chargingState;
} }
} }
@@ -718,7 +715,6 @@ public final class BatteryService extends SystemService {
mHealthInfo.maxChargingVoltageMicrovolts); mHealthInfo.maxChargingVoltageMicrovolts);
intent.putExtra(BatteryManager.EXTRA_CHARGE_COUNTER, mHealthInfo.batteryChargeCounterUah); intent.putExtra(BatteryManager.EXTRA_CHARGE_COUNTER, mHealthInfo.batteryChargeCounterUah);
intent.putExtra(BatteryManager.EXTRA_CYCLE_COUNT, mHealthInfo.batteryCycleCount); 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); intent.putExtra(BatteryManager.EXTRA_CHARGING_STATUS, mHealthInfo.chargingState);
if (DEBUG) { if (DEBUG) {
Slog.d(TAG, "Sending ACTION_BATTERY_CHANGED. scale:" + BATTERY_SCALE Slog.d(TAG, "Sending ACTION_BATTERY_CHANGED. scale:" + BATTERY_SCALE
@@ -744,7 +740,6 @@ public final class BatteryService extends SystemService {
event.putInt(BatteryManager.EXTRA_CHARGE_COUNTER, mHealthInfo.batteryChargeCounterUah); event.putInt(BatteryManager.EXTRA_CHARGE_COUNTER, mHealthInfo.batteryChargeCounterUah);
event.putLong(BatteryManager.EXTRA_EVENT_TIMESTAMP, now); event.putLong(BatteryManager.EXTRA_EVENT_TIMESTAMP, now);
event.putInt(BatteryManager.EXTRA_CYCLE_COUNT, mHealthInfo.batteryCycleCount); 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); event.putInt(BatteryManager.EXTRA_CHARGING_STATUS, mHealthInfo.chargingState);
boolean queueWasEmpty = mBatteryLevelsEventQueue.isEmpty(); boolean queueWasEmpty = mBatteryLevelsEventQueue.isEmpty();
@@ -1265,6 +1260,7 @@ public final class BatteryService extends SystemService {
case BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE: case BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE:
case BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE: case BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE:
case BatteryManager.BATTERY_PROPERTY_CHARGING_POLICY: case BatteryManager.BATTERY_PROPERTY_CHARGING_POLICY:
case BatteryManager.BATTERY_PROPERTY_STATE_OF_HEALTH:
mContext.enforceCallingPermission( mContext.enforceCallingPermission(
android.Manifest.permission.BATTERY_STATS, null); android.Manifest.permission.BATTERY_STATS, null);
break; break;

View File

@@ -146,6 +146,10 @@ class HealthServiceWrapperAidl extends HealthServiceWrapper {
case BatteryManager.BATTERY_PROPERTY_CHARGING_POLICY: case BatteryManager.BATTERY_PROPERTY_CHARGING_POLICY:
prop.setLong(service.getChargingPolicy()); prop.setLong(service.getChargingPolicy());
break; break;
case BatteryManager.BATTERY_PROPERTY_STATE_OF_HEALTH:
healthData = service.getBatteryHealthData();
prop.setLong(healthData.batteryStateOfHealth);
break;
} }
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// Leave prop untouched. // Leave prop untouched.