From 6b291909ea085cc451201ce0e3da961f96523b45 Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Wed, 25 Jan 2023 17:47:09 +0900 Subject: [PATCH] Add PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES API This string allows apps add a network_capabilities.xml resource to the AndroidManifest.xml. The network_capabilities.xml file will allow application developers to request for a network capabilities that they want their application to be able to use. The available capabilities are defined in ApplicationNetworkCapabilities.java. Test: atest FrameworksNetTests CtsHostsideNetworkTests Bug: 266524688 Change-Id: I36e73f8eb02d9c58cdbb9763b188d68eac9e9ccb Merged-In: I99b0698748af3cfafa0ff84df0454584dbad88b1 --- core/api/current.txt | 1 + .../android/content/pm/PackageManager.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index 46318ae6f7ef3..ced2e853d74b4 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -12079,6 +12079,7 @@ package android.content.pm { field public static final int PERMISSION_DENIED = -1; // 0xffffffff field public static final int PERMISSION_GRANTED = 0; // 0x0 field public static final String PROPERTY_MEDIA_CAPABILITIES = "android.media.PROPERTY_MEDIA_CAPABILITIES"; + field public static final String PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES = "android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES"; field public static final int SIGNATURE_FIRST_NOT_SIGNED = -1; // 0xffffffff field public static final int SIGNATURE_MATCH = 0; // 0x0 field public static final int SIGNATURE_NEITHER_SIGNED = 1; // 0x1 diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index f1e37243003ca..bf139bdd300e3 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -150,6 +150,29 @@ public abstract class PackageManager { public static final String PROPERTY_MEDIA_CAPABILITIES = "android.media.PROPERTY_MEDIA_CAPABILITIES"; + /** + * <application> level {@link android.content.pm.PackageManager.Property} tag + * specifying the XML resource ID containing the declaration of the self-certified network + * capabilities used by the application. + * + *

Starting from Android 14, usage of some network capabilities in + * {@link android.net.ConnectivityManager#requestNetwork} require the application to + * declare its usage of that particular capability in this resource. Only some capabilities + * require a declaration. Please look up the specific capability you want to use in + * {@link android.net.NetworkCapabilities} to see if it needs declaration in this property. + * + * For example: + * <application> + * <property android:name="android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES" + * android:resource="@xml/self_certified_network_capabilities"> + * <application> + * + *

The detail format of self_certified_network_capabilities.xml is described in + * {@link android.net.NetworkRequest} + */ + public static final String PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES = + "android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES"; + /** * Application level property that an app can specify to opt-out from having private data * directories both on the internal and external storages.