Add low latency and high bandwidth network capabilities
Bug: 194332512 Test: build Change-Id: I415ca1ba90ea54c4106f806fe855bcb84d3e38ba
This commit is contained in:
@@ -326,6 +326,8 @@ package android.net {
|
|||||||
field public static final int NET_CAPABILITY_NOT_ROAMING = 18; // 0x12
|
field public static final int NET_CAPABILITY_NOT_ROAMING = 18; // 0x12
|
||||||
field public static final int NET_CAPABILITY_NOT_SUSPENDED = 21; // 0x15
|
field public static final int NET_CAPABILITY_NOT_SUSPENDED = 21; // 0x15
|
||||||
field public static final int NET_CAPABILITY_NOT_VPN = 15; // 0xf
|
field public static final int NET_CAPABILITY_NOT_VPN = 15; // 0xf
|
||||||
|
field public static final int NET_CAPABILITY_PRIORITIZE_BANDWIDTH = 35; // 0x23
|
||||||
|
field public static final int NET_CAPABILITY_PRIORITIZE_LATENCY = 34; // 0x22
|
||||||
field public static final int NET_CAPABILITY_RCS = 8; // 0x8
|
field public static final int NET_CAPABILITY_RCS = 8; // 0x8
|
||||||
field public static final int NET_CAPABILITY_SUPL = 1; // 0x1
|
field public static final int NET_CAPABILITY_SUPL = 1; // 0x1
|
||||||
field public static final int NET_CAPABILITY_TEMPORARILY_NOT_METERED = 25; // 0x19
|
field public static final int NET_CAPABILITY_TEMPORARILY_NOT_METERED = 25; // 0x19
|
||||||
|
|||||||
@@ -357,6 +357,8 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
NET_CAPABILITY_BIP,
|
NET_CAPABILITY_BIP,
|
||||||
NET_CAPABILITY_HEAD_UNIT,
|
NET_CAPABILITY_HEAD_UNIT,
|
||||||
NET_CAPABILITY_MMTEL,
|
NET_CAPABILITY_MMTEL,
|
||||||
|
NET_CAPABILITY_PRIORITIZE_LATENCY,
|
||||||
|
NET_CAPABILITY_PRIORITIZE_BANDWIDTH,
|
||||||
})
|
})
|
||||||
public @interface NetCapability { }
|
public @interface NetCapability { }
|
||||||
|
|
||||||
@@ -600,8 +602,18 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public static final int NET_CAPABILITY_MMTEL = 33;
|
public static final int NET_CAPABILITY_MMTEL = 33;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that this network should be able to prioritize latency for the internet.
|
||||||
|
*/
|
||||||
|
public static final int NET_CAPABILITY_PRIORITIZE_LATENCY = 34;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that this network should be able to prioritize bandwidth for the internet.
|
||||||
|
*/
|
||||||
|
public static final int NET_CAPABILITY_PRIORITIZE_BANDWIDTH = 35;
|
||||||
|
|
||||||
private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS;
|
private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS;
|
||||||
private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_MMTEL;
|
private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_PRIORITIZE_BANDWIDTH;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Network capabilities that are expected to be mutable, i.e., can change while a particular
|
* Network capabilities that are expected to be mutable, i.e., can change while a particular
|
||||||
@@ -2241,6 +2253,8 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
case NET_CAPABILITY_BIP: return "BIP";
|
case NET_CAPABILITY_BIP: return "BIP";
|
||||||
case NET_CAPABILITY_HEAD_UNIT: return "HEAD_UNIT";
|
case NET_CAPABILITY_HEAD_UNIT: return "HEAD_UNIT";
|
||||||
case NET_CAPABILITY_MMTEL: return "MMTEL";
|
case NET_CAPABILITY_MMTEL: return "MMTEL";
|
||||||
|
case NET_CAPABILITY_PRIORITIZE_LATENCY: return "PRIORITIZE_LATENCY";
|
||||||
|
case NET_CAPABILITY_PRIORITIZE_BANDWIDTH: return "PRIORITIZE_BANDWIDTH";
|
||||||
default: return Integer.toString(capability);
|
default: return Integer.toString(capability);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ 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_PAID;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE;
|
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_PARTIAL_CONNECTIVITY;
|
||||||
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH;
|
||||||
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_WIFI_P2P;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_WIFI_P2P;
|
||||||
@@ -415,6 +417,31 @@ public class NetworkCapabilitiesTest {
|
|||||||
assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities()));
|
assertFalse(nr.satisfiedByNetworkCapabilities(new NetworkCapabilities()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test @IgnoreUpTo(SC_V2) // TODO: Use to Build.VERSION_CODES.SC_V2 when available
|
||||||
|
public void testPrioritizeLatencyAndBandwidth() {
|
||||||
|
NetworkCapabilities netCap = new NetworkCapabilities();
|
||||||
|
netCap.addCapability(NET_CAPABILITY_PRIORITIZE_LATENCY);
|
||||||
|
netCap.addCapability(NET_CAPABILITY_NOT_METERED);
|
||||||
|
netCap.maybeMarkCapabilitiesRestricted();
|
||||||
|
assertTrue(netCap.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
|
||||||
|
netCap = new NetworkCapabilities();
|
||||||
|
netCap.addCapability(NET_CAPABILITY_PRIORITIZE_LATENCY);
|
||||||
|
netCap.removeCapability(NET_CAPABILITY_NOT_METERED);
|
||||||
|
netCap.maybeMarkCapabilitiesRestricted();
|
||||||
|
assertTrue(netCap.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
|
||||||
|
|
||||||
|
netCap = new NetworkCapabilities();
|
||||||
|
netCap.addCapability(NET_CAPABILITY_PRIORITIZE_BANDWIDTH);
|
||||||
|
netCap.addCapability(NET_CAPABILITY_NOT_METERED);
|
||||||
|
netCap.maybeMarkCapabilitiesRestricted();
|
||||||
|
assertTrue(netCap.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
|
||||||
|
netCap = new NetworkCapabilities();
|
||||||
|
netCap.addCapability(NET_CAPABILITY_PRIORITIZE_BANDWIDTH);
|
||||||
|
netCap.removeCapability(NET_CAPABILITY_NOT_METERED);
|
||||||
|
netCap.maybeMarkCapabilitiesRestricted();
|
||||||
|
assertTrue(netCap.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
|
||||||
|
}
|
||||||
|
|
||||||
@Test @IgnoreUpTo(Build.VERSION_CODES.R)
|
@Test @IgnoreUpTo(Build.VERSION_CODES.R)
|
||||||
public void testOemPrivate() {
|
public void testOemPrivate() {
|
||||||
NetworkCapabilities nc = new NetworkCapabilities();
|
NetworkCapabilities nc = new NetworkCapabilities();
|
||||||
|
|||||||
Reference in New Issue
Block a user