diff --git a/core/api/current.txt b/core/api/current.txt index 1eeb9275b0b20..d9ba8d4b2bdc1 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -8163,6 +8163,7 @@ package android.app.usage { method public long getAppBytes(); method public long getCacheBytes(); method public long getDataBytes(); + method public long getExternalCacheBytes(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; } diff --git a/core/java/android/app/usage/StorageStats.java b/core/java/android/app/usage/StorageStats.java index 4757557d0fd52..8d25d7bfb11bc 100644 --- a/core/java/android/app/usage/StorageStats.java +++ b/core/java/android/app/usage/StorageStats.java @@ -32,6 +32,7 @@ public final class StorageStats implements Parcelable { /** {@hide} */ public long codeBytes; /** {@hide} */ public long dataBytes; /** {@hide} */ public long cacheBytes; + /** {@hide} */ public long externalCacheBytes; /** * Return the size of app. This includes {@code APK} files, optimized @@ -77,6 +78,17 @@ public final class StorageStats implements Parcelable { return cacheBytes; } + /** + * Return the size of all cached data in the primary external/shared storage. + * This includes files stored under + * {@link Context#getExternalCacheDir()}. + *

+ * Cached data is isolated for each user on a multiuser device. + */ + public @BytesLong long getExternalCacheBytes() { + return externalCacheBytes; + } + /** {@hide} */ public StorageStats() { } @@ -86,6 +98,7 @@ public final class StorageStats implements Parcelable { this.codeBytes = in.readLong(); this.dataBytes = in.readLong(); this.cacheBytes = in.readLong(); + this.externalCacheBytes = in.readLong(); } @Override @@ -98,6 +111,7 @@ public final class StorageStats implements Parcelable { dest.writeLong(codeBytes); dest.writeLong(dataBytes); dest.writeLong(cacheBytes); + dest.writeLong(externalCacheBytes); } public static final @android.annotation.NonNull Creator CREATOR = new Creator() { diff --git a/services/usage/java/com/android/server/usage/StorageStatsService.java b/services/usage/java/com/android/server/usage/StorageStatsService.java index 52b0afb56b3cd..a0a390947822a 100644 --- a/services/usage/java/com/android/server/usage/StorageStatsService.java +++ b/services/usage/java/com/android/server/usage/StorageStatsService.java @@ -514,6 +514,7 @@ public class StorageStatsService extends IStorageStatsManager.Stub { res.codeBytes = stats.codeSize + stats.externalCodeSize; res.dataBytes = stats.dataSize + stats.externalDataSize; res.cacheBytes = stats.cacheSize + stats.externalCacheSize; + res.externalCacheBytes = stats.externalCacheSize; return res; }