Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -26057,6 +26057,8 @@ package android.net { public class NetworkRequest implements android.os.Parcelable { method public int describeContents(); method public boolean hasCapability(int); method public boolean hasTransport(int); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.NetworkRequest> CREATOR; } api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -2636,6 +2636,10 @@ package android.net { field public static final int ERROR_INVALID_NETWORK = 1; // 0x1 } public final class NetworkCapabilities implements android.os.Parcelable { field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 } public class NetworkKey implements android.os.Parcelable { ctor public NetworkKey(android.net.WifiKey); method public int describeContents(); Loading api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,11 @@ package android.net { field public static final int INVALID_SECURITY_PARAMETER_INDEX = 0; // 0x0 } public final class NetworkCapabilities implements android.os.Parcelable { method public int[] getCapabilities(); method public int[] getTransportTypes(); } public class TrafficStats { method public static long getLoopbackRxBytes(); method public static long getLoopbackRxPackets(); Loading core/java/android/net/NetworkCapabilities.java +95 −14 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package android.net; import android.annotation.IntDef; import android.annotation.SystemApi; import android.annotation.TestApi; import android.net.ConnectivityManager.NetworkCallback; import android.os.Parcel; import android.os.Parcelable; Loading Loading @@ -61,15 +63,7 @@ public final class NetworkCapabilities implements Parcelable { public NetworkCapabilities(NetworkCapabilities nc) { if (nc != null) { mNetworkCapabilities = nc.mNetworkCapabilities; mTransportTypes = nc.mTransportTypes; mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps; mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps; mNetworkSpecifier = nc.mNetworkSpecifier; mSignalStrength = nc.mSignalStrength; mUids = nc.mUids; mEstablishingVpnAppUid = nc.mEstablishingVpnAppUid; mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities; set(nc); } } Loading @@ -85,6 +79,24 @@ public final class NetworkCapabilities implements Parcelable { mSignalStrength = SIGNAL_STRENGTH_UNSPECIFIED; mUids = null; mEstablishingVpnAppUid = INVALID_UID; mSSID = null; } /** * Set all contents of this object to the contents of a NetworkCapabilities. * @hide */ public void set(NetworkCapabilities nc) { mNetworkCapabilities = nc.mNetworkCapabilities; mTransportTypes = nc.mTransportTypes; mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps; mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps; mNetworkSpecifier = nc.mNetworkSpecifier; mSignalStrength = nc.mSignalStrength; setUids(nc.mUids); // Will make the defensive copy mEstablishingVpnAppUid = nc.mEstablishingVpnAppUid; mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities; mSSID = nc.mSSID; } /** Loading Loading @@ -276,6 +288,7 @@ public final class NetworkCapabilities implements Parcelable { * this network can be used by system apps to upload telemetry data. * @hide */ @SystemApi public static final int NET_CAPABILITY_OEM_PAID = 22; private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; Loading Loading @@ -424,6 +437,7 @@ public final class NetworkCapabilities implements Parcelable { * @return an array of capability values for this instance. * @hide */ @TestApi public @NetCapability int[] getCapabilities() { return BitUtils.unpackBits(mNetworkCapabilities); } Loading Loading @@ -688,6 +702,7 @@ public final class NetworkCapabilities implements Parcelable { * @return an array of transport type values for this instance. * @hide */ @TestApi public @Transport int[] getTransportTypes() { return BitUtils.unpackBits(mTransportTypes); } Loading Loading @@ -921,7 +936,7 @@ public final class NetworkCapabilities implements Parcelable { /** * Sets the signal strength. This is a signed integer, with higher values indicating a stronger * signal. The exact units are bearer-dependent. For example, Wi-Fi uses the same RSSI units * reported by WifiManager. * reported by wifi code. * <p> * Note that when used to register a network callback, this specifies the minimum acceptable * signal strength. When received as the state of an existing network it specifies the current Loading Loading @@ -1053,7 +1068,7 @@ public final class NetworkCapabilities implements Parcelable { } /** * Tests if the set of UIDs that this network applies to is the same of the passed set of UIDs. * Tests if the set of UIDs that this network applies to is the same as the passed network. * <p> * This test only checks whether equal range objects are in both sets. It will * return false if the ranges are not exactly the same, even if the covered UIDs Loading Loading @@ -1143,6 +1158,62 @@ public final class NetworkCapabilities implements Parcelable { mUids.addAll(nc.mUids); } /** * The SSID of the network, or null if not applicable or unknown. * <p> * This is filled in by wifi code. * @hide */ private String mSSID; /** * Sets the SSID of this network. * @hide */ public NetworkCapabilities setSSID(String ssid) { mSSID = ssid; return this; } /** * Gets the SSID of this network, or null if none or unknown. * @hide */ public String getSSID() { return mSSID; } /** * Tests if the SSID of this network is the same as the SSID of the passed network. * @hide */ public boolean equalsSSID(NetworkCapabilities nc) { return Objects.equals(mSSID, nc.mSSID); } /** * Check if the SSID requirements of this object are matched by the passed object. * @hide */ public boolean satisfiedBySSID(NetworkCapabilities nc) { return mSSID == null || mSSID.equals(nc.mSSID); } /** * Combine SSIDs of the capabilities. * <p> * This is only legal if either the SSID of this object is null, or both SSIDs are * equal. * @hide */ private void combineSSIDs(NetworkCapabilities nc) { if (mSSID != null && !mSSID.equals(nc.mSSID)) { throw new IllegalStateException("Can't combine two SSIDs"); } setSSID(nc.mSSID); } /** * Combine a set of Capabilities to this one. Useful for coming up with the complete set. * <p> Loading @@ -1158,6 +1229,7 @@ public final class NetworkCapabilities implements Parcelable { combineSpecifiers(nc); combineSignalStrength(nc); combineUids(nc); combineSSIDs(nc); } /** Loading @@ -1176,7 +1248,8 @@ public final class NetworkCapabilities implements Parcelable { && (onlyImmutable || satisfiedByLinkBandwidths(nc)) && satisfiedBySpecifier(nc) && (onlyImmutable || satisfiedBySignalStrength(nc)) && (onlyImmutable || satisfiedByUids(nc))); && (onlyImmutable || satisfiedByUids(nc)) && (onlyImmutable || satisfiedBySSID(nc))); } /** Loading Loading @@ -1265,7 +1338,8 @@ public final class NetworkCapabilities implements Parcelable { && equalsLinkBandwidths(that) && equalsSignalStrength(that) && equalsSpecifier(that) && equalsUids(that)); && equalsUids(that) && equalsSSID(that)); } @Override Loading @@ -1280,7 +1354,8 @@ public final class NetworkCapabilities implements Parcelable { + (mLinkDownBandwidthKbps * 19) + Objects.hashCode(mNetworkSpecifier) * 23 + (mSignalStrength * 29) + Objects.hashCode(mUids) * 31; + Objects.hashCode(mUids) * 31 + Objects.hashCode(mSSID) * 37; } @Override Loading @@ -1297,6 +1372,7 @@ public final class NetworkCapabilities implements Parcelable { dest.writeParcelable((Parcelable) mNetworkSpecifier, flags); dest.writeInt(mSignalStrength); dest.writeArraySet(mUids); dest.writeString(mSSID); } public static final Creator<NetworkCapabilities> CREATOR = Loading @@ -1314,6 +1390,7 @@ public final class NetworkCapabilities implements Parcelable { netCap.mSignalStrength = in.readInt(); netCap.mUids = (ArraySet<UidRange>) in.readArraySet( null /* ClassLoader, null for default */); netCap.mSSID = in.readString(); return netCap; } @Override Loading Loading @@ -1364,6 +1441,10 @@ public final class NetworkCapabilities implements Parcelable { sb.append(" EstablishingAppUid: ").append(mEstablishingVpnAppUid); } if (null != mSSID) { sb.append(" SSID: ").append(mSSID); } sb.append("]"); return sb.toString(); } Loading core/java/android/net/NetworkRequest.java +28 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package android.net; import android.annotation.NonNull; import android.net.NetworkCapabilities.NetCapability; import android.net.NetworkCapabilities.Transport; import android.os.Parcel; import android.os.Parcelable; import android.os.Process; Loading Loading @@ -165,9 +167,6 @@ public class NetworkRequest implements Parcelable { * the requested network's required capabilities. Note that when searching * for a network to satisfy a request, all capabilities requested must be * satisfied. * <p> * If the given capability was previously added to the list of unwanted capabilities * then the capability will also be removed from the list of unwanted capabilities. * * @param capability The capability to add. * @return The builder to facilitate chaining Loading @@ -179,8 +178,7 @@ public class NetworkRequest implements Parcelable { } /** * Removes (if found) the given capability from this builder instance from both required * and unwanted capabilities lists. * Removes (if found) the given capability from this builder instance. * * @param capability The capability to remove. * @return The builder to facilitate chaining. Loading @@ -199,8 +197,7 @@ public class NetworkRequest implements Parcelable { * @hide */ public Builder setCapabilities(NetworkCapabilities nc) { mNetworkCapabilities.clearAll(); mNetworkCapabilities.combineCapabilities(nc); mNetworkCapabilities.set(nc); return this; } Loading Loading @@ -228,6 +225,7 @@ public class NetworkRequest implements Parcelable { * * @param capability The capability to add to unwanted capability list. * @return The builder to facilitate chaining. * * @hide */ public Builder addUnwantedCapability(@NetworkCapabilities.NetCapability int capability) { Loading Loading @@ -426,6 +424,29 @@ public class NetworkRequest implements Parcelable { return type == Type.BACKGROUND_REQUEST; } /** * @see Builder#addCapability(int) */ public boolean hasCapability(@NetCapability int capability) { return networkCapabilities.hasCapability(capability); } /** * @see Builder#addUnwantedCapability(int) * * @hide */ public boolean hasUnwantedCapability(@NetCapability int capability) { return networkCapabilities.hasUnwantedCapability(capability); } /** * @see Builder#addTransportType(int) */ public boolean hasTransport(@Transport int transportType) { return networkCapabilities.hasTransport(transportType); } public String toString() { return "NetworkRequest [ " + type + " id=" + requestId + (legacyType != ConnectivityManager.TYPE_NONE ? ", legacyType=" + legacyType : "") + Loading Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -26057,6 +26057,8 @@ package android.net { public class NetworkRequest implements android.os.Parcelable { method public int describeContents(); method public boolean hasCapability(int); method public boolean hasTransport(int); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.net.NetworkRequest> CREATOR; }
api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -2636,6 +2636,10 @@ package android.net { field public static final int ERROR_INVALID_NETWORK = 1; // 0x1 } public final class NetworkCapabilities implements android.os.Parcelable { field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 } public class NetworkKey implements android.os.Parcelable { ctor public NetworkKey(android.net.WifiKey); method public int describeContents(); Loading
api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,11 @@ package android.net { field public static final int INVALID_SECURITY_PARAMETER_INDEX = 0; // 0x0 } public final class NetworkCapabilities implements android.os.Parcelable { method public int[] getCapabilities(); method public int[] getTransportTypes(); } public class TrafficStats { method public static long getLoopbackRxBytes(); method public static long getLoopbackRxPackets(); Loading
core/java/android/net/NetworkCapabilities.java +95 −14 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package android.net; import android.annotation.IntDef; import android.annotation.SystemApi; import android.annotation.TestApi; import android.net.ConnectivityManager.NetworkCallback; import android.os.Parcel; import android.os.Parcelable; Loading Loading @@ -61,15 +63,7 @@ public final class NetworkCapabilities implements Parcelable { public NetworkCapabilities(NetworkCapabilities nc) { if (nc != null) { mNetworkCapabilities = nc.mNetworkCapabilities; mTransportTypes = nc.mTransportTypes; mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps; mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps; mNetworkSpecifier = nc.mNetworkSpecifier; mSignalStrength = nc.mSignalStrength; mUids = nc.mUids; mEstablishingVpnAppUid = nc.mEstablishingVpnAppUid; mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities; set(nc); } } Loading @@ -85,6 +79,24 @@ public final class NetworkCapabilities implements Parcelable { mSignalStrength = SIGNAL_STRENGTH_UNSPECIFIED; mUids = null; mEstablishingVpnAppUid = INVALID_UID; mSSID = null; } /** * Set all contents of this object to the contents of a NetworkCapabilities. * @hide */ public void set(NetworkCapabilities nc) { mNetworkCapabilities = nc.mNetworkCapabilities; mTransportTypes = nc.mTransportTypes; mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps; mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps; mNetworkSpecifier = nc.mNetworkSpecifier; mSignalStrength = nc.mSignalStrength; setUids(nc.mUids); // Will make the defensive copy mEstablishingVpnAppUid = nc.mEstablishingVpnAppUid; mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities; mSSID = nc.mSSID; } /** Loading Loading @@ -276,6 +288,7 @@ public final class NetworkCapabilities implements Parcelable { * this network can be used by system apps to upload telemetry data. * @hide */ @SystemApi public static final int NET_CAPABILITY_OEM_PAID = 22; private static final int MIN_NET_CAPABILITY = NET_CAPABILITY_MMS; Loading Loading @@ -424,6 +437,7 @@ public final class NetworkCapabilities implements Parcelable { * @return an array of capability values for this instance. * @hide */ @TestApi public @NetCapability int[] getCapabilities() { return BitUtils.unpackBits(mNetworkCapabilities); } Loading Loading @@ -688,6 +702,7 @@ public final class NetworkCapabilities implements Parcelable { * @return an array of transport type values for this instance. * @hide */ @TestApi public @Transport int[] getTransportTypes() { return BitUtils.unpackBits(mTransportTypes); } Loading Loading @@ -921,7 +936,7 @@ public final class NetworkCapabilities implements Parcelable { /** * Sets the signal strength. This is a signed integer, with higher values indicating a stronger * signal. The exact units are bearer-dependent. For example, Wi-Fi uses the same RSSI units * reported by WifiManager. * reported by wifi code. * <p> * Note that when used to register a network callback, this specifies the minimum acceptable * signal strength. When received as the state of an existing network it specifies the current Loading Loading @@ -1053,7 +1068,7 @@ public final class NetworkCapabilities implements Parcelable { } /** * Tests if the set of UIDs that this network applies to is the same of the passed set of UIDs. * Tests if the set of UIDs that this network applies to is the same as the passed network. * <p> * This test only checks whether equal range objects are in both sets. It will * return false if the ranges are not exactly the same, even if the covered UIDs Loading Loading @@ -1143,6 +1158,62 @@ public final class NetworkCapabilities implements Parcelable { mUids.addAll(nc.mUids); } /** * The SSID of the network, or null if not applicable or unknown. * <p> * This is filled in by wifi code. * @hide */ private String mSSID; /** * Sets the SSID of this network. * @hide */ public NetworkCapabilities setSSID(String ssid) { mSSID = ssid; return this; } /** * Gets the SSID of this network, or null if none or unknown. * @hide */ public String getSSID() { return mSSID; } /** * Tests if the SSID of this network is the same as the SSID of the passed network. * @hide */ public boolean equalsSSID(NetworkCapabilities nc) { return Objects.equals(mSSID, nc.mSSID); } /** * Check if the SSID requirements of this object are matched by the passed object. * @hide */ public boolean satisfiedBySSID(NetworkCapabilities nc) { return mSSID == null || mSSID.equals(nc.mSSID); } /** * Combine SSIDs of the capabilities. * <p> * This is only legal if either the SSID of this object is null, or both SSIDs are * equal. * @hide */ private void combineSSIDs(NetworkCapabilities nc) { if (mSSID != null && !mSSID.equals(nc.mSSID)) { throw new IllegalStateException("Can't combine two SSIDs"); } setSSID(nc.mSSID); } /** * Combine a set of Capabilities to this one. Useful for coming up with the complete set. * <p> Loading @@ -1158,6 +1229,7 @@ public final class NetworkCapabilities implements Parcelable { combineSpecifiers(nc); combineSignalStrength(nc); combineUids(nc); combineSSIDs(nc); } /** Loading @@ -1176,7 +1248,8 @@ public final class NetworkCapabilities implements Parcelable { && (onlyImmutable || satisfiedByLinkBandwidths(nc)) && satisfiedBySpecifier(nc) && (onlyImmutable || satisfiedBySignalStrength(nc)) && (onlyImmutable || satisfiedByUids(nc))); && (onlyImmutable || satisfiedByUids(nc)) && (onlyImmutable || satisfiedBySSID(nc))); } /** Loading Loading @@ -1265,7 +1338,8 @@ public final class NetworkCapabilities implements Parcelable { && equalsLinkBandwidths(that) && equalsSignalStrength(that) && equalsSpecifier(that) && equalsUids(that)); && equalsUids(that) && equalsSSID(that)); } @Override Loading @@ -1280,7 +1354,8 @@ public final class NetworkCapabilities implements Parcelable { + (mLinkDownBandwidthKbps * 19) + Objects.hashCode(mNetworkSpecifier) * 23 + (mSignalStrength * 29) + Objects.hashCode(mUids) * 31; + Objects.hashCode(mUids) * 31 + Objects.hashCode(mSSID) * 37; } @Override Loading @@ -1297,6 +1372,7 @@ public final class NetworkCapabilities implements Parcelable { dest.writeParcelable((Parcelable) mNetworkSpecifier, flags); dest.writeInt(mSignalStrength); dest.writeArraySet(mUids); dest.writeString(mSSID); } public static final Creator<NetworkCapabilities> CREATOR = Loading @@ -1314,6 +1390,7 @@ public final class NetworkCapabilities implements Parcelable { netCap.mSignalStrength = in.readInt(); netCap.mUids = (ArraySet<UidRange>) in.readArraySet( null /* ClassLoader, null for default */); netCap.mSSID = in.readString(); return netCap; } @Override Loading Loading @@ -1364,6 +1441,10 @@ public final class NetworkCapabilities implements Parcelable { sb.append(" EstablishingAppUid: ").append(mEstablishingVpnAppUid); } if (null != mSSID) { sb.append(" SSID: ").append(mSSID); } sb.append("]"); return sb.toString(); } Loading
core/java/android/net/NetworkRequest.java +28 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package android.net; import android.annotation.NonNull; import android.net.NetworkCapabilities.NetCapability; import android.net.NetworkCapabilities.Transport; import android.os.Parcel; import android.os.Parcelable; import android.os.Process; Loading Loading @@ -165,9 +167,6 @@ public class NetworkRequest implements Parcelable { * the requested network's required capabilities. Note that when searching * for a network to satisfy a request, all capabilities requested must be * satisfied. * <p> * If the given capability was previously added to the list of unwanted capabilities * then the capability will also be removed from the list of unwanted capabilities. * * @param capability The capability to add. * @return The builder to facilitate chaining Loading @@ -179,8 +178,7 @@ public class NetworkRequest implements Parcelable { } /** * Removes (if found) the given capability from this builder instance from both required * and unwanted capabilities lists. * Removes (if found) the given capability from this builder instance. * * @param capability The capability to remove. * @return The builder to facilitate chaining. Loading @@ -199,8 +197,7 @@ public class NetworkRequest implements Parcelable { * @hide */ public Builder setCapabilities(NetworkCapabilities nc) { mNetworkCapabilities.clearAll(); mNetworkCapabilities.combineCapabilities(nc); mNetworkCapabilities.set(nc); return this; } Loading Loading @@ -228,6 +225,7 @@ public class NetworkRequest implements Parcelable { * * @param capability The capability to add to unwanted capability list. * @return The builder to facilitate chaining. * * @hide */ public Builder addUnwantedCapability(@NetworkCapabilities.NetCapability int capability) { Loading Loading @@ -426,6 +424,29 @@ public class NetworkRequest implements Parcelable { return type == Type.BACKGROUND_REQUEST; } /** * @see Builder#addCapability(int) */ public boolean hasCapability(@NetCapability int capability) { return networkCapabilities.hasCapability(capability); } /** * @see Builder#addUnwantedCapability(int) * * @hide */ public boolean hasUnwantedCapability(@NetCapability int capability) { return networkCapabilities.hasUnwantedCapability(capability); } /** * @see Builder#addTransportType(int) */ public boolean hasTransport(@Transport int transportType) { return networkCapabilities.hasTransport(transportType); } public String toString() { return "NetworkRequest [ " + type + " id=" + requestId + (legacyType != ConnectivityManager.TYPE_NONE ? ", legacyType=" + legacyType : "") + Loading