summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt2
-rw-r--r--api/system-current.txt2
-rw-r--r--api/test-current.txt2
-rw-r--r--core/java/android/content/pm/PackageManager.java19
-rw-r--r--core/java/com/android/server/SystemConfig.java6
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);
}