Loading core/java/android/os/BatteryStats.java +5 −0 Original line number Diff line number Diff line Loading @@ -3405,6 +3405,11 @@ public abstract class BatteryStats implements Parcelable { */ public abstract WakeLockStats getWakeLockStats(); /** * Returns aggregated Bluetooth stats. */ public abstract BluetoothBatteryStats getBluetoothBatteryStats(); /** * Returns Timers tracking the total time of each Resource Power Manager state and voter. */ Loading core/java/android/os/BatteryStatsManager.java +15 −0 Original line number Diff line number Diff line Loading @@ -367,6 +367,21 @@ public final class BatteryStatsManager { } } /** * Retrieves accumulated bluetooth stats. * * @hide */ @RequiresPermission(android.Manifest.permission.BATTERY_STATS) @NonNull public BluetoothBatteryStats getBluetoothBatteryStats() { try { return mBatteryStats.getBluetoothBatteryStats(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Indicates an app acquiring full wifi lock. * Loading core/java/android/os/BluetoothBatteryStats.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; /** {@hide} */ parcelable BluetoothBatteryStats; core/java/android/os/BluetoothBatteryStats.java 0 → 100644 +127 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.annotation.NonNull; import java.util.ArrayList; import java.util.List; /** * Snapshot of Bluetooth battery stats. * * @hide */ public class BluetoothBatteryStats implements Parcelable { /** @hide */ public static class UidStats { public final int uid; public final long scanTimeMs; public final long unoptimizedScanTimeMs; public final int scanResultCount; public final long rxTimeMs; public final long txTimeMs; public UidStats(int uid, long scanTimeMs, long unoptimizedScanTimeMs, int scanResultCount, long rxTimeMs, long txTimeMs) { this.uid = uid; this.scanTimeMs = scanTimeMs; this.unoptimizedScanTimeMs = unoptimizedScanTimeMs; this.scanResultCount = scanResultCount; this.rxTimeMs = rxTimeMs; this.txTimeMs = txTimeMs; } private UidStats(Parcel in) { uid = in.readInt(); scanTimeMs = in.readLong(); unoptimizedScanTimeMs = in.readLong(); scanResultCount = in.readInt(); rxTimeMs = in.readLong(); txTimeMs = in.readLong(); } private void writeToParcel(Parcel out) { out.writeInt(uid); out.writeLong(scanTimeMs); out.writeLong(unoptimizedScanTimeMs); out.writeInt(scanResultCount); out.writeLong(rxTimeMs); out.writeLong(txTimeMs); } @Override public String toString() { return "UidStats{" + "uid=" + uid + ", scanTimeMs=" + scanTimeMs + ", unoptimizedScanTimeMs=" + unoptimizedScanTimeMs + ", scanResultCount=" + scanResultCount + ", rxTimeMs=" + rxTimeMs + ", txTimeMs=" + txTimeMs + '}'; } } private final List<UidStats> mUidStats; public BluetoothBatteryStats(@NonNull List<UidStats> uidStats) { mUidStats = uidStats; } @NonNull public List<UidStats> getUidStats() { return mUidStats; } protected BluetoothBatteryStats(Parcel in) { final int size = in.readInt(); mUidStats = new ArrayList<>(size); for (int i = 0; i < size; i++) { mUidStats.add(new UidStats(in)); } } @Override public void writeToParcel(@NonNull Parcel out, int flags) { final int size = mUidStats.size(); out.writeInt(size); for (int i = 0; i < size; i++) { UidStats stats = mUidStats.get(i); stats.writeToParcel(out); } } public static final Creator<BluetoothBatteryStats> CREATOR = new Creator<BluetoothBatteryStats>() { @Override public BluetoothBatteryStats createFromParcel(Parcel in) { return new BluetoothBatteryStats(in); } @Override public BluetoothBatteryStats[] newArray(int size) { return new BluetoothBatteryStats[size]; } }; @Override public int describeContents() { return 0; } } core/java/com/android/internal/app/IBatteryStats.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import com.android.internal.os.BatteryStatsImpl; import android.bluetooth.BluetoothActivityEnergyInfo; import android.os.BatteryUsageStats; import android.os.BatteryUsageStatsQuery; import android.os.BluetoothBatteryStats; import android.os.ParcelFileDescriptor; import android.os.WakeLockStats; import android.os.WorkSource; Loading Loading @@ -162,6 +163,10 @@ interface IBatteryStats { @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BATTERY_STATS)") WakeLockStats getWakeLockStats(); /** {@hide} */ @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BATTERY_STATS)") BluetoothBatteryStats getBluetoothBatteryStats(); HealthStatsParceler takeUidSnapshot(int uid); HealthStatsParceler[] takeUidSnapshots(in int[] uid); Loading Loading
core/java/android/os/BatteryStats.java +5 −0 Original line number Diff line number Diff line Loading @@ -3405,6 +3405,11 @@ public abstract class BatteryStats implements Parcelable { */ public abstract WakeLockStats getWakeLockStats(); /** * Returns aggregated Bluetooth stats. */ public abstract BluetoothBatteryStats getBluetoothBatteryStats(); /** * Returns Timers tracking the total time of each Resource Power Manager state and voter. */ Loading
core/java/android/os/BatteryStatsManager.java +15 −0 Original line number Diff line number Diff line Loading @@ -367,6 +367,21 @@ public final class BatteryStatsManager { } } /** * Retrieves accumulated bluetooth stats. * * @hide */ @RequiresPermission(android.Manifest.permission.BATTERY_STATS) @NonNull public BluetoothBatteryStats getBluetoothBatteryStats() { try { return mBatteryStats.getBluetoothBatteryStats(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Indicates an app acquiring full wifi lock. * Loading
core/java/android/os/BluetoothBatteryStats.aidl 0 → 100644 +20 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; /** {@hide} */ parcelable BluetoothBatteryStats;
core/java/android/os/BluetoothBatteryStats.java 0 → 100644 +127 −0 Original line number Diff line number Diff line /* * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.annotation.NonNull; import java.util.ArrayList; import java.util.List; /** * Snapshot of Bluetooth battery stats. * * @hide */ public class BluetoothBatteryStats implements Parcelable { /** @hide */ public static class UidStats { public final int uid; public final long scanTimeMs; public final long unoptimizedScanTimeMs; public final int scanResultCount; public final long rxTimeMs; public final long txTimeMs; public UidStats(int uid, long scanTimeMs, long unoptimizedScanTimeMs, int scanResultCount, long rxTimeMs, long txTimeMs) { this.uid = uid; this.scanTimeMs = scanTimeMs; this.unoptimizedScanTimeMs = unoptimizedScanTimeMs; this.scanResultCount = scanResultCount; this.rxTimeMs = rxTimeMs; this.txTimeMs = txTimeMs; } private UidStats(Parcel in) { uid = in.readInt(); scanTimeMs = in.readLong(); unoptimizedScanTimeMs = in.readLong(); scanResultCount = in.readInt(); rxTimeMs = in.readLong(); txTimeMs = in.readLong(); } private void writeToParcel(Parcel out) { out.writeInt(uid); out.writeLong(scanTimeMs); out.writeLong(unoptimizedScanTimeMs); out.writeInt(scanResultCount); out.writeLong(rxTimeMs); out.writeLong(txTimeMs); } @Override public String toString() { return "UidStats{" + "uid=" + uid + ", scanTimeMs=" + scanTimeMs + ", unoptimizedScanTimeMs=" + unoptimizedScanTimeMs + ", scanResultCount=" + scanResultCount + ", rxTimeMs=" + rxTimeMs + ", txTimeMs=" + txTimeMs + '}'; } } private final List<UidStats> mUidStats; public BluetoothBatteryStats(@NonNull List<UidStats> uidStats) { mUidStats = uidStats; } @NonNull public List<UidStats> getUidStats() { return mUidStats; } protected BluetoothBatteryStats(Parcel in) { final int size = in.readInt(); mUidStats = new ArrayList<>(size); for (int i = 0; i < size; i++) { mUidStats.add(new UidStats(in)); } } @Override public void writeToParcel(@NonNull Parcel out, int flags) { final int size = mUidStats.size(); out.writeInt(size); for (int i = 0; i < size; i++) { UidStats stats = mUidStats.get(i); stats.writeToParcel(out); } } public static final Creator<BluetoothBatteryStats> CREATOR = new Creator<BluetoothBatteryStats>() { @Override public BluetoothBatteryStats createFromParcel(Parcel in) { return new BluetoothBatteryStats(in); } @Override public BluetoothBatteryStats[] newArray(int size) { return new BluetoothBatteryStats[size]; } }; @Override public int describeContents() { return 0; } }
core/java/com/android/internal/app/IBatteryStats.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import com.android.internal.os.BatteryStatsImpl; import android.bluetooth.BluetoothActivityEnergyInfo; import android.os.BatteryUsageStats; import android.os.BatteryUsageStatsQuery; import android.os.BluetoothBatteryStats; import android.os.ParcelFileDescriptor; import android.os.WakeLockStats; import android.os.WorkSource; Loading Loading @@ -162,6 +163,10 @@ interface IBatteryStats { @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BATTERY_STATS)") WakeLockStats getWakeLockStats(); /** {@hide} */ @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BATTERY_STATS)") BluetoothBatteryStats getBluetoothBatteryStats(); HealthStatsParceler takeUidSnapshot(int uid); HealthStatsParceler[] takeUidSnapshots(in int[] uid); Loading