diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 19 | ||||
| -rw-r--r-- | core/java/com/android/server/SystemConfig.java | 6 |
5 files changed, 31 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 72157abc50c6..ce120bca42d2 100644 --- a/api/current.txt +++ b/api/current.txt @@ -10746,6 +10746,8 @@ package android.content.pm { field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc"; field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture"; field public static final java.lang.String FEATURE_PRINTING = "android.software.print"; + field public static final java.lang.String FEATURE_RAM_LOW = "android.hardware.ram.low"; + field public static final java.lang.String FEATURE_RAM_NORMAL = "android.hardware.ram.normal"; field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape"; field public static final java.lang.String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait"; field public static final java.lang.String FEATURE_SECURELY_REMOVES_USERS = "android.software.securely_removes_users"; diff --git a/api/system-current.txt b/api/system-current.txt index 0ee9134beb26..bceb98c68276 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -11465,6 +11465,8 @@ package android.content.pm { field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc"; field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture"; field public static final java.lang.String FEATURE_PRINTING = "android.software.print"; + field public static final java.lang.String FEATURE_RAM_LOW = "android.hardware.ram.low"; + field public static final java.lang.String FEATURE_RAM_NORMAL = "android.hardware.ram.normal"; field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape"; field public static final java.lang.String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait"; field public static final java.lang.String FEATURE_SECURELY_REMOVES_USERS = "android.software.securely_removes_users"; diff --git a/api/test-current.txt b/api/test-current.txt index 62d32234339d..8fedfbbd33b8 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -10788,6 +10788,8 @@ package android.content.pm { field public static final java.lang.String FEATURE_PC = "android.hardware.type.pc"; field public static final java.lang.String FEATURE_PICTURE_IN_PICTURE = "android.software.picture_in_picture"; field public static final java.lang.String FEATURE_PRINTING = "android.software.print"; + field public static final java.lang.String FEATURE_RAM_LOW = "android.hardware.ram.low"; + field public static final java.lang.String FEATURE_RAM_NORMAL = "android.hardware.ram.normal"; field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape"; field public static final java.lang.String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait"; field public static final java.lang.String FEATURE_SECURELY_REMOVES_USERS = "android.software.securely_removes_users"; diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index f6eaed4e5c5b..17648b244c81 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -31,6 +31,7 @@ import android.annotation.SystemApi; import android.annotation.TestApi; import android.annotation.UserIdInt; import android.annotation.XmlRes; +import android.app.ActivityManager; import android.app.PackageDeleteObserver; import android.app.PackageInstallObserver; import android.app.admin.DevicePolicyManager; @@ -1790,6 +1791,24 @@ public abstract class PackageManager { /** * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device's + * {@link ActivityManager#isLowRamDevice() ActivityManager.isLowRamDevice()} method returns + * true. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_RAM_LOW = "android.hardware.ram.low"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: The device's + * {@link ActivityManager#isLowRamDevice() ActivityManager.isLowRamDevice()} method returns + * false. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_RAM_NORMAL = "android.hardware.ram.normal"; + + /** + * Feature for {@link #getSystemAvailableFeatures} and * {@link #hasSystemFeature}: The device can record audio via a * microphone. */ diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 67f9f8f49ee6..81018fe4b357 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -584,6 +584,12 @@ public class SystemConfig { addFeature(PackageManager.FEATURE_SECURELY_REMOVES_USERS, 0); } + if (ActivityManager.isLowRamDeviceStatic()) { + addFeature(PackageManager.FEATURE_RAM_LOW, 0); + } else { + addFeature(PackageManager.FEATURE_RAM_NORMAL, 0); + } + for (String featureName : mUnavailableFeatures) { removeFeature(featureName); } |