From 7345ed506552735fdc7f5836f3ca79b0c3c1c104 Mon Sep 17 00:00:00 2001 From: Dennis Kempin Date: Fri, 14 Apr 2017 16:40:56 -0700 Subject: [PATCH] Add PC feature flag This CL adds a feature flags for traditional clamshell and desktop computing devices. It can be used by apps to specifically target those device types (such as Chromebooks) and by the framework to recognize apps that have been designed for that form-factor. Bug: 37359238 Test: None Change-Id: Ie10443583997bcf1bff0b44da31af3f144f7aa0b --- api/current.txt | 1 + api/system-current.txt | 1 + api/test-current.txt | 1 + core/java/android/content/pm/PackageManager.java | 11 +++++++++++ 4 files changed, 14 insertions(+) diff --git a/api/current.txt b/api/current.txt index 47707233dd077..3b1532e369344 100644 --- a/api/current.txt +++ b/api/current.txt @@ -10718,6 +10718,7 @@ package android.content.pm { field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce"; field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef"; field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep"; + 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_SCREEN_LANDSCAPE = "android.hardware.screen.landscape"; diff --git a/api/system-current.txt b/api/system-current.txt index 979ce3ad37a60..7a03972612d73 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -11414,6 +11414,7 @@ package android.content.pm { field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce"; field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef"; field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep"; + 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_SCREEN_LANDSCAPE = "android.hardware.screen.landscape"; diff --git a/api/test-current.txt b/api/test-current.txt index cf38b0ce005c4..0f5170c790df5 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -10758,6 +10758,7 @@ package android.content.pm { field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce"; field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION_NFCF = "android.hardware.nfc.hcef"; field public static final java.lang.String FEATURE_OPENGLES_EXTENSION_PACK = "android.hardware.opengles.aep"; + 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_SCREEN_LANDSCAPE = "android.hardware.screen.landscape"; diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index ad2dbe76c675f..f51a4d7554762 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -2275,6 +2275,17 @@ public abstract class PackageManager { @SdkConstant(SdkConstantType.FEATURE) public static final String FEATURE_EMBEDDED = "android.hardware.type.embedded"; + /** + * Feature for {@link #getSystemAvailableFeatures} and + * {@link #hasSystemFeature}: This is a device dedicated to be primarily used + * with keyboard, mouse or touchpad. This includes traditional desktop + * computers, laptops and variants such as convertibles or detachables. + * Due to the larger screen, the device will most likely use the + * {@link #FEATURE_FREEFORM_WINDOW_MANAGEMENT} feature as well. + */ + @SdkConstant(SdkConstantType.FEATURE) + public static final String FEATURE_PC = "android.hardware.type.pc"; + /** * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: * The device supports printing.