diff --git a/framework/api/current.txt b/framework/api/current.txt index 6860c3c389..554301b0c1 100644 --- a/framework/api/current.txt +++ b/framework/api/current.txt @@ -332,6 +332,7 @@ package android.net { field public static final int NET_CAPABILITY_IA = 7; // 0x7 field public static final int NET_CAPABILITY_IMS = 4; // 0x4 field public static final int NET_CAPABILITY_INTERNET = 12; // 0xc + field @FlaggedApi("com.android.net.flags.net_capability_local_network") public static final int NET_CAPABILITY_LOCAL_NETWORK = 36; // 0x24 field public static final int NET_CAPABILITY_MCX = 23; // 0x17 field public static final int NET_CAPABILITY_MMS = 0; // 0x0 field public static final int NET_CAPABILITY_MMTEL = 33; // 0x21 diff --git a/framework/src/android/net/NetworkCapabilities.java b/framework/src/android/net/NetworkCapabilities.java index efae754caa..8d9a844804 100644 --- a/framework/src/android/net/NetworkCapabilities.java +++ b/framework/src/android/net/NetworkCapabilities.java @@ -20,6 +20,7 @@ import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIV import static com.android.net.module.util.BitUtils.appendStringRepresentationOfBitMaskToStringBuilder; import static com.android.net.module.util.BitUtils.describeDifferences; +import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.LongDef; import android.annotation.NonNull; @@ -29,9 +30,6 @@ import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.net.ConnectivityManager.NetworkCallback; -// Can't be imported because aconfig tooling doesn't exist on udc-mainline-prod yet -// See inner class Flags which mimics this for the time being -// import android.net.flags.Flags; import android.os.Build; import android.os.Parcel; import android.os.Parcelable; @@ -130,6 +128,8 @@ public final class NetworkCapabilities implements Parcelable { public static class Flags { static final String FLAG_FORBIDDEN_CAPABILITY = "com.android.net.flags.forbidden_capability"; + static final String FLAG_NET_CAPABILITY_LOCAL_NETWORK = + "com.android.net.flags.net_capability_local_network"; } /** @@ -716,17 +716,13 @@ public final class NetworkCapabilities implements Parcelable { public static final int NET_CAPABILITY_PRIORITIZE_BANDWIDTH = 35; /** - * This is a local network, e.g. a tethering downstream or a P2P direct network. + * Indicates that this network is a local network, e.g. thread network * - *

- * Note that local networks are not sent to callbacks by default. To receive callbacks about - * them, the {@link NetworkRequest} instance must be prepared to see them, either by - * adding the capability with {@link NetworkRequest.Builder#addCapability}, by removing - * this forbidden capability with {@link NetworkRequest.Builder#removeForbiddenCapability}, - * or by clearing all capabilites with {@link NetworkRequest.Builder#clearCapabilities()}. - *

- * @hide + * Apps that target an SDK before {@link Build.VERSION_CODES.VANILLA_ICE_CREAM} will not see + * networks with this capability unless they explicitly set the NET_CAPABILITY_LOCAL_NETWORK + * in their NetworkRequests. */ + @FlaggedApi(Flags.FLAG_NET_CAPABILITY_LOCAL_NETWORK) public static final int NET_CAPABILITY_LOCAL_NETWORK = 36; private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_LOCAL_NETWORK;