Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -6257,6 +6257,7 @@ package android.net { method @NonNull public int[] getTransportTypes(); method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities); field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 field public static final int NET_CAPABILITY_OEM_PRIVATE = 26; // 0x1a field public static final int NET_CAPABILITY_PARTIAL_CONNECTIVITY = 24; // 0x18 } Loading core/java/android/net/NetworkCapabilities.java +12 −2 Original line number Diff line number Diff line Loading @@ -170,6 +170,7 @@ public final class NetworkCapabilities implements Parcelable { NET_CAPABILITY_MCX, NET_CAPABILITY_PARTIAL_CONNECTIVITY, NET_CAPABILITY_TEMPORARILY_NOT_METERED, NET_CAPABILITY_OEM_PRIVATE, }) public @interface NetCapability { } Loading Loading @@ -345,8 +346,15 @@ public final class NetworkCapabilities implements Parcelable { */ public static final int NET_CAPABILITY_TEMPORARILY_NOT_METERED = 25; /** * Indicates that this network is private to the OEM and meant only for OEM use. * @hide */ @SystemApi public static final int NET_CAPABILITY_OEM_PRIVATE = 26; private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_TEMPORARILY_NOT_METERED; private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_OEM_PRIVATE; /** * Network capabilities that are expected to be mutable, i.e., can change while a particular Loading Loading @@ -404,7 +412,8 @@ public final class NetworkCapabilities implements Parcelable { * {@see #maybeMarkCapabilitiesRestricted}. */ private static final long FORCE_RESTRICTED_CAPABILITIES = (1 << NET_CAPABILITY_OEM_PAID); (1 << NET_CAPABILITY_OEM_PAID) | (1 << NET_CAPABILITY_OEM_PRIVATE); /** * Capabilities that suggest that a network is unrestricted. Loading Loading @@ -1910,6 +1919,7 @@ public final class NetworkCapabilities implements Parcelable { case NET_CAPABILITY_MCX: return "MCX"; case NET_CAPABILITY_PARTIAL_CONNECTIVITY: return "PARTIAL_CONNECTIVITY"; case NET_CAPABILITY_TEMPORARILY_NOT_METERED: return "TEMPORARILY_NOT_METERED"; case NET_CAPABILITY_OEM_PRIVATE: return "OEM_PRIVATE"; default: return Integer.toString(capability); } } Loading non-updatable-api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -6205,6 +6205,7 @@ package android.net { method @NonNull public int[] getTransportTypes(); method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities); field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 field public static final int NET_CAPABILITY_OEM_PRIVATE = 26; // 0x1a field public static final int NET_CAPABILITY_PARTIAL_CONNECTIVITY = 24; // 0x18 } Loading tests/net/common/java/android/net/NetworkCapabilitiesTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN; import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PAID; import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE; import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.NetworkCapabilities.NET_CAPABILITY_WIFI_P2P; Loading Loading @@ -358,6 +359,33 @@ public class NetworkCapabilitiesTest { assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities())); } @Test public void testOemPrivate() { NetworkCapabilities nc = new NetworkCapabilities(); // By default OEM_PRIVATE is neither in the unwanted or required lists and the network is // not restricted. assertFalse(nc.hasUnwantedCapability(NET_CAPABILITY_OEM_PRIVATE)); assertFalse(nc.hasCapability(NET_CAPABILITY_OEM_PRIVATE)); nc.maybeMarkCapabilitiesRestricted(); assertTrue(nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)); // Adding OEM_PRIVATE to capability list should make network restricted. nc.addCapability(NET_CAPABILITY_OEM_PRIVATE); nc.addCapability(NET_CAPABILITY_INTERNET); // Combine with unrestricted capability. nc.maybeMarkCapabilitiesRestricted(); assertTrue(nc.hasCapability(NET_CAPABILITY_OEM_PRIVATE)); assertFalse(nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)); // Now let's make request for OEM_PRIVATE network. NetworkCapabilities nr = new NetworkCapabilities(); nr.addCapability(NET_CAPABILITY_OEM_PRIVATE); nr.maybeMarkCapabilitiesRestricted(); assertTrue(nr.satisfiedByNetworkCapabilities(nc)); // Request fails for network with the default capabilities. assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities())); } @Test public void testUnwantedCapabilities() { NetworkCapabilities network = new NetworkCapabilities(); Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -6257,6 +6257,7 @@ package android.net { method @NonNull public int[] getTransportTypes(); method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities); field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 field public static final int NET_CAPABILITY_OEM_PRIVATE = 26; // 0x1a field public static final int NET_CAPABILITY_PARTIAL_CONNECTIVITY = 24; // 0x18 } Loading
core/java/android/net/NetworkCapabilities.java +12 −2 Original line number Diff line number Diff line Loading @@ -170,6 +170,7 @@ public final class NetworkCapabilities implements Parcelable { NET_CAPABILITY_MCX, NET_CAPABILITY_PARTIAL_CONNECTIVITY, NET_CAPABILITY_TEMPORARILY_NOT_METERED, NET_CAPABILITY_OEM_PRIVATE, }) public @interface NetCapability { } Loading Loading @@ -345,8 +346,15 @@ public final class NetworkCapabilities implements Parcelable { */ public static final int NET_CAPABILITY_TEMPORARILY_NOT_METERED = 25; /** * Indicates that this network is private to the OEM and meant only for OEM use. * @hide */ @SystemApi public static final int NET_CAPABILITY_OEM_PRIVATE = 26; private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_TEMPORARILY_NOT_METERED; private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_OEM_PRIVATE; /** * Network capabilities that are expected to be mutable, i.e., can change while a particular Loading Loading @@ -404,7 +412,8 @@ public final class NetworkCapabilities implements Parcelable { * {@see #maybeMarkCapabilitiesRestricted}. */ private static final long FORCE_RESTRICTED_CAPABILITIES = (1 << NET_CAPABILITY_OEM_PAID); (1 << NET_CAPABILITY_OEM_PAID) | (1 << NET_CAPABILITY_OEM_PRIVATE); /** * Capabilities that suggest that a network is unrestricted. Loading Loading @@ -1910,6 +1919,7 @@ public final class NetworkCapabilities implements Parcelable { case NET_CAPABILITY_MCX: return "MCX"; case NET_CAPABILITY_PARTIAL_CONNECTIVITY: return "PARTIAL_CONNECTIVITY"; case NET_CAPABILITY_TEMPORARILY_NOT_METERED: return "TEMPORARILY_NOT_METERED"; case NET_CAPABILITY_OEM_PRIVATE: return "OEM_PRIVATE"; default: return Integer.toString(capability); } } Loading
non-updatable-api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -6205,6 +6205,7 @@ package android.net { method @NonNull public int[] getTransportTypes(); method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities); field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 field public static final int NET_CAPABILITY_OEM_PRIVATE = 26; // 0x1a field public static final int NET_CAPABILITY_PARTIAL_CONNECTIVITY = 24; // 0x18 } Loading
tests/net/common/java/android/net/NetworkCapabilitiesTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING; import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN; import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PAID; import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE; import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.NetworkCapabilities.NET_CAPABILITY_WIFI_P2P; Loading Loading @@ -358,6 +359,33 @@ public class NetworkCapabilitiesTest { assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities())); } @Test public void testOemPrivate() { NetworkCapabilities nc = new NetworkCapabilities(); // By default OEM_PRIVATE is neither in the unwanted or required lists and the network is // not restricted. assertFalse(nc.hasUnwantedCapability(NET_CAPABILITY_OEM_PRIVATE)); assertFalse(nc.hasCapability(NET_CAPABILITY_OEM_PRIVATE)); nc.maybeMarkCapabilitiesRestricted(); assertTrue(nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)); // Adding OEM_PRIVATE to capability list should make network restricted. nc.addCapability(NET_CAPABILITY_OEM_PRIVATE); nc.addCapability(NET_CAPABILITY_INTERNET); // Combine with unrestricted capability. nc.maybeMarkCapabilitiesRestricted(); assertTrue(nc.hasCapability(NET_CAPABILITY_OEM_PRIVATE)); assertFalse(nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)); // Now let's make request for OEM_PRIVATE network. NetworkCapabilities nr = new NetworkCapabilities(); nr.addCapability(NET_CAPABILITY_OEM_PRIVATE); nr.maybeMarkCapabilitiesRestricted(); assertTrue(nr.satisfiedByNetworkCapabilities(nc)); // Request fails for network with the default capabilities. assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities())); } @Test public void testUnwantedCapabilities() { NetworkCapabilities network = new NetworkCapabilities(); Loading