Expose NET_CAPABILITY_LOCAL_NETWORK as public API

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.

In this way, `NET_CAPABILITY_LOCAL_NETWORK` should be public.

Bug: 313000440
Test: None
Change-Id: I44d9cf3ecf5da471a627696f3d2680f35d4b122d
This commit is contained in:
Handa Wang 2023-12-11 11:18:14 +08:00 • committed by Motomu Utsumi
commit 21005edfdf
2 changed files with 9 additions and 12 deletions

View file

@ -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

View file

@ -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
*
* <p>
* 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()}.
* </p>
* @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;