diff options
| -rw-r--r-- | api/system-current.txt | 21 | ||||
| -rw-r--r-- | core/java/android/os/BatteryStats.java | 64 | ||||
| -rw-r--r-- | core/java/android/os/BatteryStatsManager.java | 118 | ||||
| -rw-r--r-- | core/java/android/os/connectivity/WifiBatteryStats.java | 9 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 3 |
5 files changed, 149 insertions, 66 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 16d2d7cf8196..1da451fe94dd 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6224,6 +6224,27 @@ package android.os { method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteWifiScanStoppedFromSource(@NonNull android.os.WorkSource); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteWifiState(int, @Nullable String); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteWifiSupplicantStateChanged(int, boolean); + field public static final int WIFI_STATE_OFF = 0; // 0x0 + field public static final int WIFI_STATE_OFF_SCANNING = 1; // 0x1 + field public static final int WIFI_STATE_ON_CONNECTED_P2P = 5; // 0x5 + field public static final int WIFI_STATE_ON_CONNECTED_STA = 4; // 0x4 + field public static final int WIFI_STATE_ON_CONNECTED_STA_P2P = 6; // 0x6 + field public static final int WIFI_STATE_ON_DISCONNECTED = 3; // 0x3 + field public static final int WIFI_STATE_ON_NO_NETWORKS = 2; // 0x2 + field public static final int WIFI_STATE_SOFT_AP = 7; // 0x7 + field public static final int WIFI_SUPPL_STATE_ASSOCIATED = 7; // 0x7 + field public static final int WIFI_SUPPL_STATE_ASSOCIATING = 6; // 0x6 + field public static final int WIFI_SUPPL_STATE_AUTHENTICATING = 5; // 0x5 + field public static final int WIFI_SUPPL_STATE_COMPLETED = 10; // 0xa + field public static final int WIFI_SUPPL_STATE_DISCONNECTED = 1; // 0x1 + field public static final int WIFI_SUPPL_STATE_DORMANT = 11; // 0xb + field public static final int WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE = 8; // 0x8 + field public static final int WIFI_SUPPL_STATE_GROUP_HANDSHAKE = 9; // 0x9 + field public static final int WIFI_SUPPL_STATE_INACTIVE = 3; // 0x3 + field public static final int WIFI_SUPPL_STATE_INTERFACE_DISABLED = 2; // 0x2 + field public static final int WIFI_SUPPL_STATE_INVALID = 0; // 0x0 + field public static final int WIFI_SUPPL_STATE_SCANNING = 4; // 0x4 + field public static final int WIFI_SUPPL_STATE_UNINITIALIZED = 12; // 0xc } public class Binder implements android.os.IBinder { diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index 47544449acda..53ea936ea972 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -17,6 +17,8 @@ package android.os; import static android.app.ActivityManager.PROCESS_STATE_BOUND_TOP; +import static android.os.BatteryStatsManager.NUM_WIFI_STATES; +import static android.os.BatteryStatsManager.NUM_WIFI_SUPPL_STATES; import android.annotation.IntDef; import android.annotation.UnsupportedAppUsage; @@ -24,6 +26,8 @@ import android.app.ActivityManager; import android.app.job.JobParameters; import android.content.Context; import android.content.pm.ApplicationInfo; +import android.os.BatteryStatsManager.WifiState; +import android.os.BatteryStatsManager.WifiSupplState; import android.server.ServerProtoEnums; import android.service.batterystats.BatteryStatsServiceDumpHistoryProto; import android.service.batterystats.BatteryStatsServiceDumpProto; @@ -2458,41 +2462,6 @@ public abstract class BatteryStats implements Parcelable { */ public abstract Timer getPhoneDataConnectionTimer(int dataType); - public static final int WIFI_SUPPL_STATE_INVALID = 0; - public static final int WIFI_SUPPL_STATE_DISCONNECTED = 1; - public static final int WIFI_SUPPL_STATE_INTERFACE_DISABLED = 2; - public static final int WIFI_SUPPL_STATE_INACTIVE = 3; - public static final int WIFI_SUPPL_STATE_SCANNING = 4; - public static final int WIFI_SUPPL_STATE_AUTHENTICATING = 5; - public static final int WIFI_SUPPL_STATE_ASSOCIATING = 6; - public static final int WIFI_SUPPL_STATE_ASSOCIATED = 7; - public static final int WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE = 8; - public static final int WIFI_SUPPL_STATE_GROUP_HANDSHAKE = 9; - public static final int WIFI_SUPPL_STATE_COMPLETED = 10; - public static final int WIFI_SUPPL_STATE_DORMANT = 11; - public static final int WIFI_SUPPL_STATE_UNINITIALIZED = 12; - - public static final int NUM_WIFI_SUPPL_STATES = WIFI_SUPPL_STATE_UNINITIALIZED+1; - - /** @hide */ - @IntDef(flag = true, prefix = { "WIFI_SUPPL_STATE_" }, value = { - WIFI_SUPPL_STATE_INVALID, - WIFI_SUPPL_STATE_DISCONNECTED, - WIFI_SUPPL_STATE_INTERFACE_DISABLED, - WIFI_SUPPL_STATE_INACTIVE, - WIFI_SUPPL_STATE_SCANNING, - WIFI_SUPPL_STATE_AUTHENTICATING, - WIFI_SUPPL_STATE_ASSOCIATING, - WIFI_SUPPL_STATE_ASSOCIATED, - WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE, - WIFI_SUPPL_STATE_GROUP_HANDSHAKE, - WIFI_SUPPL_STATE_COMPLETED, - WIFI_SUPPL_STATE_DORMANT, - WIFI_SUPPL_STATE_UNINITIALIZED, - }) - @Retention(RetentionPolicy.SOURCE) - public @interface WifiSupplState {} - static final String[] WIFI_SUPPL_STATE_NAMES = { "invalid", "disconn", "disabled", "inactive", "scanning", "authenticating", "associating", "associated", "4-way-handshake", @@ -2635,31 +2604,6 @@ public abstract class BatteryStats implements Parcelable { @UnsupportedAppUsage public abstract long getGlobalWifiRunningTime(long elapsedRealtimeUs, int which); - public static final int WIFI_STATE_OFF = 0; - public static final int WIFI_STATE_OFF_SCANNING = 1; - public static final int WIFI_STATE_ON_NO_NETWORKS = 2; - public static final int WIFI_STATE_ON_DISCONNECTED = 3; - public static final int WIFI_STATE_ON_CONNECTED_STA = 4; - public static final int WIFI_STATE_ON_CONNECTED_P2P = 5; - public static final int WIFI_STATE_ON_CONNECTED_STA_P2P = 6; - public static final int WIFI_STATE_SOFT_AP = 7; - - public static final int NUM_WIFI_STATES = WIFI_STATE_SOFT_AP + 1; - - /** @hide */ - @IntDef(flag = true, prefix = { "WIFI_STATE_" }, value = { - WIFI_STATE_OFF, - WIFI_STATE_OFF_SCANNING, - WIFI_STATE_ON_NO_NETWORKS, - WIFI_STATE_ON_DISCONNECTED, - WIFI_STATE_ON_CONNECTED_STA, - WIFI_STATE_ON_CONNECTED_P2P, - WIFI_STATE_ON_CONNECTED_STA_P2P, - WIFI_STATE_SOFT_AP - }) - @Retention(RetentionPolicy.SOURCE) - public @interface WifiState {} - static final String[] WIFI_STATE_NAMES = { "off", "scanning", "no_net", "disconn", "sta", "p2p", "sta_p2p", "soft_ap" diff --git a/core/java/android/os/BatteryStatsManager.java b/core/java/android/os/BatteryStatsManager.java index e5650aea0522..0545666ca743 100644 --- a/core/java/android/os/BatteryStatsManager.java +++ b/core/java/android/os/BatteryStatsManager.java @@ -16,6 +16,7 @@ package android.os; +import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; @@ -28,6 +29,9 @@ import android.os.connectivity.WifiBatteryStats; import com.android.internal.app.IBatteryStats; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * This class provides an API surface for internal system components to report events that are * needed for battery usage/estimation and battery blaming for apps. @@ -39,6 +43,116 @@ import com.android.internal.app.IBatteryStats; @SystemApi @SystemService(Context.BATTERY_STATS_SERVICE) public class BatteryStatsManager { + /** + * Wifi states. + * + * @see #noteWifiState(int, String) + */ + /** + * Wifi fully off. + */ + public static final int WIFI_STATE_OFF = 0; + /** + * Wifi connectivity off, but scanning enabled. + */ + public static final int WIFI_STATE_OFF_SCANNING = 1; + /** + * Wifi on, but no saved infrastructure networks to connect to. + */ + public static final int WIFI_STATE_ON_NO_NETWORKS = 2; + /** + * Wifi on, but not connected to any infrastructure networks. + */ + public static final int WIFI_STATE_ON_DISCONNECTED = 3; + /** + * Wifi on and connected to a infrastructure network. + */ + public static final int WIFI_STATE_ON_CONNECTED_STA = 4; + /** + * Wifi on and connected to a P2P device, but no infrastructure connection to a network. + */ + public static final int WIFI_STATE_ON_CONNECTED_P2P = 5; + /** + * Wifi on and connected to both a P2P device and infrastructure connection to a network. + */ + public static final int WIFI_STATE_ON_CONNECTED_STA_P2P = 6; + /** + * SoftAp/Hotspot turned on. + */ + public static final int WIFI_STATE_SOFT_AP = 7; + + /** @hide */ + public static final int NUM_WIFI_STATES = WIFI_STATE_SOFT_AP + 1; + + /** @hide */ + @IntDef(flag = true, prefix = { "WIFI_STATE_" }, value = { + WIFI_STATE_OFF, + WIFI_STATE_OFF_SCANNING, + WIFI_STATE_ON_NO_NETWORKS, + WIFI_STATE_ON_DISCONNECTED, + WIFI_STATE_ON_CONNECTED_STA, + WIFI_STATE_ON_CONNECTED_P2P, + WIFI_STATE_ON_CONNECTED_STA_P2P, + WIFI_STATE_SOFT_AP + }) + @Retention(RetentionPolicy.SOURCE) + public @interface WifiState {} + + /** + * Wifi supplicant daemon states. + * + * @see android.net.wifi.SupplicantState for detailed description of states. + * @see #noteWifiSupplicantStateChanged(int) + */ + /** @see android.net.wifi.SupplicantState#INVALID */ + public static final int WIFI_SUPPL_STATE_INVALID = 0; + /** @see android.net.wifi.SupplicantState#DISCONNECTED*/ + public static final int WIFI_SUPPL_STATE_DISCONNECTED = 1; + /** @see android.net.wifi.SupplicantState#INTERFACE_DISABLED */ + public static final int WIFI_SUPPL_STATE_INTERFACE_DISABLED = 2; + /** @see android.net.wifi.SupplicantState#INACTIVE*/ + public static final int WIFI_SUPPL_STATE_INACTIVE = 3; + /** @see android.net.wifi.SupplicantState#SCANNING*/ + public static final int WIFI_SUPPL_STATE_SCANNING = 4; + /** @see android.net.wifi.SupplicantState#AUTHENTICATING */ + public static final int WIFI_SUPPL_STATE_AUTHENTICATING = 5; + /** @see android.net.wifi.SupplicantState#ASSOCIATING */ + public static final int WIFI_SUPPL_STATE_ASSOCIATING = 6; + /** @see android.net.wifi.SupplicantState#ASSOCIATED */ + public static final int WIFI_SUPPL_STATE_ASSOCIATED = 7; + /** @see android.net.wifi.SupplicantState#FOUR_WAY_HANDSHAKE */ + public static final int WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE = 8; + /** @see android.net.wifi.SupplicantState#GROUP_HANDSHAKE */ + public static final int WIFI_SUPPL_STATE_GROUP_HANDSHAKE = 9; + /** @see android.net.wifi.SupplicantState#COMPLETED */ + public static final int WIFI_SUPPL_STATE_COMPLETED = 10; + /** @see android.net.wifi.SupplicantState#DORMANT */ + public static final int WIFI_SUPPL_STATE_DORMANT = 11; + /** @see android.net.wifi.SupplicantState#UNINITIALIZED */ + public static final int WIFI_SUPPL_STATE_UNINITIALIZED = 12; + + /** @hide */ + public static final int NUM_WIFI_SUPPL_STATES = WIFI_SUPPL_STATE_UNINITIALIZED + 1; + + /** @hide */ + @IntDef(flag = true, prefix = { "WIFI_SUPPL_STATE_" }, value = { + WIFI_SUPPL_STATE_INVALID, + WIFI_SUPPL_STATE_DISCONNECTED, + WIFI_SUPPL_STATE_INTERFACE_DISABLED, + WIFI_SUPPL_STATE_INACTIVE, + WIFI_SUPPL_STATE_SCANNING, + WIFI_SUPPL_STATE_AUTHENTICATING, + WIFI_SUPPL_STATE_ASSOCIATING, + WIFI_SUPPL_STATE_ASSOCIATED, + WIFI_SUPPL_STATE_FOUR_WAY_HANDSHAKE, + WIFI_SUPPL_STATE_GROUP_HANDSHAKE, + WIFI_SUPPL_STATE_COMPLETED, + WIFI_SUPPL_STATE_DORMANT, + WIFI_SUPPL_STATE_UNINITIALIZED, + }) + @Retention(RetentionPolicy.SOURCE) + public @interface WifiSupplState {} + private final IBatteryStats mBatteryStats; /** @hide */ @@ -91,7 +205,7 @@ public class BatteryStatsManager { * @param accessPoint SSID of the network if wifi is connected to STA, else null. */ @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) - public void noteWifiState(@BatteryStats.WifiState int newWifiState, + public void noteWifiState(@WifiState int newWifiState, @Nullable String accessPoint) { try { mBatteryStats.noteWifiState(newWifiState, accessPoint); @@ -224,7 +338,7 @@ public class BatteryStatsManager { * authentication failure. */ @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) - public void noteWifiSupplicantStateChanged(@BatteryStats.WifiSupplState int newSupplState, + public void noteWifiSupplicantStateChanged(@WifiSupplState int newSupplState, boolean failedAuth) { try { mBatteryStats.noteWifiSupplicantStateChanged(newSupplState, failedAuth); diff --git a/core/java/android/os/connectivity/WifiBatteryStats.java b/core/java/android/os/connectivity/WifiBatteryStats.java index e9b3837c8853..895d837a359e 100644 --- a/core/java/android/os/connectivity/WifiBatteryStats.java +++ b/core/java/android/os/connectivity/WifiBatteryStats.java @@ -19,6 +19,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.BatteryStats; +import android.os.BatteryStatsManager; import android.os.Parcel; import android.os.Parcelable; @@ -46,9 +47,9 @@ public final class WifiBatteryStats implements Parcelable { private long mEnergyConsumedMaMillis = 0; private long mNumAppScanRequest = 0; private long[] mTimeInStateMillis = - new long[BatteryStats.NUM_WIFI_STATES]; + new long[BatteryStatsManager.NUM_WIFI_STATES]; private long[] mTimeInSupplicantStateMillis = - new long[BatteryStats.NUM_WIFI_SUPPL_STATES]; + new long[BatteryStatsManager.NUM_WIFI_SUPPL_STATES]; private long[] mTimeInRxSignalStrengthLevelMillis = new long[BatteryStats.NUM_WIFI_SIGNAL_STRENGTH_BINS]; private long mMonitoredRailChargeConsumedMaMillis = 0; @@ -369,7 +370,7 @@ public final class WifiBatteryStats implements Parcelable { /** @hide */ public void setTimeInStateMillis(long[] t) { mTimeInStateMillis = Arrays.copyOfRange(t, 0, - Math.min(t.length, BatteryStats.NUM_WIFI_STATES)); + Math.min(t.length, BatteryStatsManager.NUM_WIFI_STATES)); return; } @@ -383,7 +384,7 @@ public final class WifiBatteryStats implements Parcelable { /** @hide */ public void setTimeInSupplicantStateMillis(long[] t) { mTimeInSupplicantStateMillis = Arrays.copyOfRange( - t, 0, Math.min(t.length, BatteryStats.NUM_WIFI_SUPPL_STATES)); + t, 0, Math.min(t.length, BatteryStatsManager.NUM_WIFI_SUPPL_STATES)); return; } diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 7140e7e92827..d0a83c4369a6 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -16,6 +16,9 @@ package com.android.internal.os; +import static android.os.BatteryStatsManager.NUM_WIFI_STATES; +import static android.os.BatteryStatsManager.NUM_WIFI_SUPPL_STATES; + import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UnsupportedAppUsage; |