blob: 74ac8f57cdcfc99366162d906982a2d2e94774d9 [file] [log] [blame]
/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.net;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.PendingIntent;
import android.content.Context;
import android.net.IpSecManager.UdpEncapsulationSocket;
import android.net.SocketKeepalive.Callback;
import android.os.Bundle;
import android.os.Handler;
import android.os.Messenger;
import android.os.ParcelFileDescriptor;
import android.os.PersistableBundle;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.List;
import java.util.concurrent.Executor;
import static android.os._Original_Build.VERSION_CODES.BASE;
/**
* Stub ConnectivityManager for layoutlib
*/
public class ConnectivityManager {
@Deprecated
public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
public static final String ACTION_CAPTIVE_PORTAL_SIGN_IN = "android.net.conn.CAPTIVE_PORTAL";
@Deprecated
public static final String EXTRA_NETWORK_INFO = "networkInfo";
@Deprecated
public static final String EXTRA_NETWORK_TYPE = "networkType";
@Deprecated
public static final String EXTRA_IS_FAILOVER = "isFailover";
@Deprecated
public static final String EXTRA_OTHER_NETWORK_INFO = "otherNetwork";
public static final String EXTRA_NO_CONNECTIVITY = "noConnectivity";
public static final String EXTRA_REASON = "reason";
@Deprecated
public static final String EXTRA_EXTRA_INFO = "extraInfo";
public static final String EXTRA_INET_CONDITION = "inetCondition";
public static final String EXTRA_CAPTIVE_PORTAL = "android.net.extra.CAPTIVE_PORTAL";
public static final String EXTRA_CAPTIVE_PORTAL_URL = "android.net.extra.CAPTIVE_PORTAL_URL";
public static final String EXTRA_CAPTIVE_PORTAL_PROBE_SPEC =
"android.net.extra.CAPTIVE_PORTAL_PROBE_SPEC";
public static final String EXTRA_CAPTIVE_PORTAL_USER_AGENT =
"android.net.extra.CAPTIVE_PORTAL_USER_AGENT";
public static final String ACTION_DATA_ACTIVITY_CHANGE =
"android.net.conn.DATA_ACTIVITY_CHANGE";
public static final String EXTRA_DEVICE_TYPE = "deviceType";
public static final String EXTRA_IS_ACTIVE = "isActive";
public static final String EXTRA_REALTIME_NS = "tsNanos";
@Deprecated
public static final String ACTION_BACKGROUND_DATA_SETTING_CHANGED =
"android.net.conn.BACKGROUND_DATA_SETTING_CHANGED";
public static final String INET_CONDITION_ACTION =
"android.net.conn.INET_CONDITION_ACTION";
public static final String ACTION_TETHER_STATE_CHANGED =
TetheringManager.ACTION_TETHER_STATE_CHANGED;
public static final String EXTRA_AVAILABLE_TETHER = TetheringManager.EXTRA_AVAILABLE_TETHER;
public static final String EXTRA_ACTIVE_LOCAL_ONLY = TetheringManager.EXTRA_ACTIVE_LOCAL_ONLY;
public static final String EXTRA_ACTIVE_TETHER = TetheringManager.EXTRA_ACTIVE_TETHER;
public static final String EXTRA_ERRORED_TETHER = TetheringManager.EXTRA_ERRORED_TETHER;
public static final String ACTION_CAPTIVE_PORTAL_TEST_COMPLETED =
"android.net.conn.CAPTIVE_PORTAL_TEST_COMPLETED";
public static final String EXTRA_IS_CAPTIVE_PORTAL = "captivePortal";
public static final String ACTION_PROMPT_UNVALIDATED = "android.net.conn.PROMPT_UNVALIDATED";
public static final String ACTION_PROMPT_LOST_VALIDATION =
"android.net.conn.PROMPT_LOST_VALIDATION";
public static final String ACTION_PROMPT_PARTIAL_CONNECTIVITY =
"android.net.conn.PROMPT_PARTIAL_CONNECTIVITY";
public static final int TETHERING_INVALID = TetheringManager.TETHERING_INVALID;
public static final int TETHERING_WIFI = TetheringManager.TETHERING_WIFI;
public static final int TETHERING_USB = TetheringManager.TETHERING_USB;
public static final int TETHERING_BLUETOOTH = TetheringManager.TETHERING_BLUETOOTH;
public static final int TETHERING_WIFI_P2P = TetheringManager.TETHERING_WIFI_P2P;
public static final int TYPE_NONE = -1;
@Deprecated
public static final int TYPE_MOBILE = 0;
@Deprecated
public static final int TYPE_WIFI = 1;
@Deprecated
public static final int TYPE_MOBILE_MMS = 2;
@Deprecated
public static final int TYPE_MOBILE_SUPL = 3;
@Deprecated
public static final int TYPE_MOBILE_DUN = 4;
@Deprecated
public static final int TYPE_MOBILE_HIPRI = 5;
@Deprecated
public static final int TYPE_WIMAX = 6;
@Deprecated
public static final int TYPE_BLUETOOTH = 7;
@Deprecated
public static final int TYPE_DUMMY = 8;
@Deprecated
public static final int TYPE_ETHERNET = 9;
@Deprecated
public static final int TYPE_MOBILE_FOTA = 10;
@Deprecated
public static final int TYPE_MOBILE_IMS = 11;
@Deprecated
public static final int TYPE_MOBILE_CBS = 12;
@Deprecated
public static final int TYPE_WIFI_P2P = 13;
@Deprecated
public static final int TYPE_MOBILE_IA = 14;
@Deprecated
public static final int TYPE_MOBILE_EMERGENCY = 15;
@Deprecated
public static final int TYPE_PROXY = 16;
@Deprecated
public static final int TYPE_VPN = 17;
@Deprecated
public static final int TYPE_TEST = 18; // TODO: Remove this once NetworkTypes are unused.
@Deprecated
public @interface LegacyNetworkType {}
public static final int MAX_RADIO_TYPE = TYPE_TEST;
public static final int MAX_NETWORK_TYPE = TYPE_TEST;
@Deprecated
public static final int DEFAULT_NETWORK_PREFERENCE = TYPE_WIFI;
public static final int REQUEST_ID_UNSET = 0;
public static final int NETID_UNSET = 0;
public static final String PRIVATE_DNS_MODE_OFF = "off";
public static final String PRIVATE_DNS_MODE_OPPORTUNISTIC = "opportunistic";
public static final String PRIVATE_DNS_MODE_PROVIDER_HOSTNAME = "hostname";
public static final String PRIVATE_DNS_DEFAULT_MODE_FALLBACK = PRIVATE_DNS_MODE_OPPORTUNISTIC;
private static ConnectivityManager sInstance;
@Deprecated
public static boolean isNetworkTypeValid(int networkType) {
return false;
}
@Deprecated
public static String getNetworkTypeName(int type) {
return null;
}
@Deprecated
public static boolean isNetworkTypeMobile(int networkType) {
return false;
}
@Deprecated
public static boolean isNetworkTypeWifi(int networkType) {
return false;
}
@Deprecated
public void setNetworkPreference(int preference) {
}
@Deprecated
public int getNetworkPreference() {
return TYPE_NONE;
}
@Deprecated
@Nullable
public NetworkInfo getActiveNetworkInfo() {
return null;
}
@Nullable
public Network getActiveNetwork() {
return null;
}
@Nullable
public Network getActiveNetworkForUid(int uid) {
return null;
}
public Network getActiveNetworkForUid(int uid, boolean ignoreBlocked) {
return null;
}
public boolean isAlwaysOnVpnPackageSupportedForUser(int userId, @Nullable String vpnPackage) {
return false;
}
public boolean setAlwaysOnVpnPackageForUser(int userId, @Nullable String vpnPackage,
boolean lockdownEnabled, @Nullable List<String> lockdownList) {
return false;
}
public String getAlwaysOnVpnPackageForUser(int userId) {
return null;
}
public boolean isVpnLockdownEnabled(int userId) {
return false;
}
public List<String> getVpnLockdownWhitelist(int userId) {
return null;
}
public NetworkInfo getActiveNetworkInfoForUid(int uid) {
return null;
}
public NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked) {
return null;
}
@Deprecated
@Nullable
public NetworkInfo getNetworkInfo(int networkType) {
return null;
}
@Deprecated
@Nullable
public NetworkInfo getNetworkInfo(@Nullable Network network) {
return null;
}
public NetworkInfo getNetworkInfoForUid(Network network, int uid, boolean ignoreBlocked) {
return null;
}
@Deprecated
@NonNull
public NetworkInfo[] getAllNetworkInfo() {
return new NetworkInfo[0];
}
@Deprecated
public Network getNetworkForType(int networkType) {
return null;
}
@NonNull
public Network[] getAllNetworks() {
return new Network[0];
}
public NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(int userId) {
return null;
}
public LinkProperties getActiveLinkProperties() {
return null;
}
@Deprecated
public LinkProperties getLinkProperties(int networkType) {
return null;
}
@Nullable
public LinkProperties getLinkProperties(@Nullable Network network) {
return null;
}
@Nullable
public NetworkCapabilities getNetworkCapabilities(@Nullable Network network) {
return null;
}
@Deprecated
public String getCaptivePortalServerUrl() {
return null;
}
@Deprecated
public int startUsingNetworkFeature(int networkType, String feature) {
return -1;
}
@Deprecated
public int stopUsingNetworkFeature(int networkType, String feature) {
return -1;
}
public static NetworkCapabilities networkCapabilitiesForType(int type) {
return null;
}
public static class PacketKeepaliveCallback {
public PacketKeepaliveCallback() {
}
public void onStarted() {}
public void onStopped() {}
public void onError(int error) {}
}
public class PacketKeepalive {
public static final int SUCCESS = 0;
public static final int NO_KEEPALIVE = -1;
public static final int BINDER_DIED = -10;
public static final int ERROR_INVALID_NETWORK = -20;
public static final int ERROR_INVALID_IP_ADDRESS = -21;
public static final int ERROR_INVALID_PORT = -22;
public static final int ERROR_INVALID_LENGTH = -23;
public static final int ERROR_INVALID_INTERVAL = -24;
public static final int ERROR_HARDWARE_UNSUPPORTED = -30;
public static final int ERROR_HARDWARE_ERROR = -31;
public static final int NATT_PORT = 4500;
public static final int MIN_INTERVAL = 10;
public void stop() {}
}
public PacketKeepalive startNattKeepalive(
Network network, int intervalSeconds, PacketKeepaliveCallback callback,
InetAddress srcAddr, int srcPort, InetAddress dstAddr) {
return null;
}
public @NonNull SocketKeepalive createSocketKeepalive(@NonNull Network network,
@NonNull UdpEncapsulationSocket socket,
@NonNull InetAddress source,
@NonNull InetAddress destination,
@NonNull Executor executor,
@NonNull Callback callback) {
throw new UnsupportedOperationException(
"createSocketKeepalive is not supported in layoutlib");
}
public @NonNull SocketKeepalive createNattKeepalive(@NonNull Network network,
@NonNull ParcelFileDescriptor pfd,
@NonNull InetAddress source,
@NonNull InetAddress destination,
@NonNull Executor executor,
@NonNull Callback callback) {
throw new UnsupportedOperationException(
"createSocketKeepalive is not supported in layoutlib");
}
public @NonNull SocketKeepalive createSocketKeepalive(@NonNull Network network,
@NonNull Socket socket,
@NonNull Executor executor,
@NonNull Callback callback) {
throw new UnsupportedOperationException(
"createSocketKeepalive is not supported in layoutlib");
}
@Deprecated
public boolean requestRouteToHost(int networkType, int hostAddress) {
return false;
}
@Deprecated
public boolean requestRouteToHostAddress(int networkType, InetAddress hostAddress) {
return false;
}
@Deprecated
public boolean getBackgroundDataSetting() {
return false;
}
@Deprecated
public void setBackgroundDataSetting(boolean allowBackgroundData) {}
@Deprecated
public boolean getMobileDataEnabled() {
return false;
}
public interface OnNetworkActiveListener {
void onNetworkActive();
}
public void addDefaultNetworkActiveListener(final OnNetworkActiveListener l) {}
public void removeDefaultNetworkActiveListener(@NonNull OnNetworkActiveListener l) {}
public boolean isDefaultNetworkActive() {
return false;
}
public ConnectivityManager(Context context, IConnectivityManager service) {
sInstance = this;
}
public static ConnectivityManager from(Context context) {
return new ConnectivityManager(context, null);
}
public NetworkRequest getDefaultRequest() {
return null;
}
public static final void enforceChangePermission(Context context) {}
@Deprecated
static ConnectivityManager getInstanceOrNull() {
return sInstance;
}
@Deprecated
private static ConnectivityManager getInstance() {
if (getInstanceOrNull() == null) {
throw new IllegalStateException("No ConnectivityManager yet constructed");
}
return getInstanceOrNull();
}
@Deprecated
public String[] getTetherableIfaces() {
return null;
}
@Deprecated
public String[] getTetheredIfaces() {
return null;
}
@Deprecated
public String[] getTetheringErroredIfaces() {
return null;
}
@Deprecated
public String[] getTetheredDhcpRanges() {
throw new UnsupportedOperationException("getTetheredDhcpRanges is not supported");
}
@Deprecated
public int tether(String iface) {
return 0;
}
@Deprecated
public int untether(String iface) {
return 0;
}
public boolean isTetheringSupported() {
return false;
}
@Deprecated
public static abstract class OnStartTetheringCallback {
public void onTetheringStarted() {}
public void onTetheringFailed() {}
}
@Deprecated
public void startTethering(int type, boolean showProvisioningUi,
final OnStartTetheringCallback callback) {}
@Deprecated
public void startTethering(int type, boolean showProvisioningUi,
final OnStartTetheringCallback callback, Handler handler) {}
@Deprecated
public void stopTethering(int type) {}
@Deprecated
public abstract static class OnTetheringEventCallback {
public void onUpstreamChanged(@Nullable Network network) {}
}
@Deprecated
public void registerTetheringEventCallback(
@NonNull Executor executor,
@NonNull final OnTetheringEventCallback callback) {}
@Deprecated
public void unregisterTetheringEventCallback(
@NonNull final OnTetheringEventCallback callback) {}
@Deprecated
public String[] getTetherableUsbRegexs() {
return null;
}
@Deprecated
public String[] getTetherableWifiRegexs() {
return null;
}
@Deprecated
public String[] getTetherableBluetoothRegexs() {
return null;
}
@Deprecated
public int setUsbTethering(boolean enable) {
return 0;
}
@Deprecated
public static final int TETHER_ERROR_NO_ERROR = TetheringManager.TETHER_ERROR_NO_ERROR;
@Deprecated
public static final int TETHER_ERROR_UNKNOWN_IFACE =
TetheringManager.TETHER_ERROR_UNKNOWN_IFACE;
@Deprecated
public static final int TETHER_ERROR_SERVICE_UNAVAIL =
TetheringManager.TETHER_ERROR_SERVICE_UNAVAIL;
@Deprecated
public static final int TETHER_ERROR_UNSUPPORTED = TetheringManager.TETHER_ERROR_UNSUPPORTED;
@Deprecated
public static final int TETHER_ERROR_UNAVAIL_IFACE =
TetheringManager.TETHER_ERROR_UNAVAIL_IFACE;
@Deprecated
public static final int TETHER_ERROR_MASTER_ERROR =
TetheringManager.TETHER_ERROR_INTERNAL_ERROR;
@Deprecated
public static final int TETHER_ERROR_TETHER_IFACE_ERROR =
TetheringManager.TETHER_ERROR_TETHER_IFACE_ERROR;
@Deprecated
public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR =
TetheringManager.TETHER_ERROR_UNTETHER_IFACE_ERROR;
@Deprecated
public static final int TETHER_ERROR_ENABLE_NAT_ERROR =
TetheringManager.TETHER_ERROR_ENABLE_FORWARDING_ERROR;
@Deprecated
public static final int TETHER_ERROR_DISABLE_NAT_ERROR =
TetheringManager.TETHER_ERROR_DISABLE_FORWARDING_ERROR;
@Deprecated
public static final int TETHER_ERROR_IFACE_CFG_ERROR =
TetheringManager.TETHER_ERROR_IFACE_CFG_ERROR;
@Deprecated
public static final int TETHER_ERROR_PROVISION_FAILED =
TetheringManager.TETHER_ERROR_PROVISIONING_FAILED;
@Deprecated
public static final int TETHER_ERROR_DHCPSERVER_ERROR =
TetheringManager.TETHER_ERROR_DHCPSERVER_ERROR;
@Deprecated
public static final int TETHER_ERROR_ENTITLEMENT_UNKONWN =
TetheringManager.TETHER_ERROR_ENTITLEMENT_UNKNOWN;
@Deprecated
public int getLastTetherError(String iface) {
return 0;
}
public @interface EntitlementResultCode {
}
@Deprecated
public interface OnTetheringEntitlementResultListener {
void onTetheringEntitlementResult(@EntitlementResultCode int resultCode);
}
@Deprecated
public void getLatestTetheringEntitlementResult(int type, boolean showEntitlementUi,
@NonNull Executor executor,
@NonNull final OnTetheringEntitlementResultListener listener) {}
public void reportInetCondition(int networkType, int percentage) {}
@Deprecated
public void reportBadNetwork(@Nullable Network network) {}
public void reportNetworkConnectivity(@Nullable Network network, boolean hasConnectivity) {}
public void setGlobalProxy(ProxyInfo p) {}
public ProxyInfo getGlobalProxy() {
return null;
}
public ProxyInfo getProxyForNetwork(Network network) {
return null;
}
@Nullable
public ProxyInfo getDefaultProxy() {
return null;
}
@Deprecated
public boolean isNetworkSupported(int networkType) {
return false;
}
public boolean isActiveNetworkMetered() {
return false;
}
public boolean updateLockdownVpn() {
return false;
}
public int checkMobileProvisioning(int suggestedTimeOutMs) {
return 0;
}
public String getMobileProvisioningUrl() {
return null;
}
@Deprecated
public void setProvisioningNotificationVisible(boolean visible, int networkType,
String action) {}
public void setAirplaneMode(boolean enable) {}
public int registerNetworkFactory(Messenger messenger, String name) {
return 0;
}
public void unregisterNetworkFactory(Messenger messenger) {}
public int registerNetworkProvider(@NonNull NetworkProvider provider) {
return 0;
}
public void unregisterNetworkProvider(@NonNull NetworkProvider provider) {}
public void declareNetworkRequestUnfulfillable(@NonNull NetworkRequest request) {}
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
NetworkCapabilities nc, int score, NetworkAgentConfig config) {
return null;
}
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) {
return null;
}
public static class NetworkCallback {
public void onPreCheck(@NonNull Network network) {}
public void onAvailable(@NonNull Network network,
@NonNull NetworkCapabilities networkCapabilities,
@NonNull LinkProperties linkProperties, boolean blocked) {}
public void onAvailable(@NonNull Network network) {}
public void onLosing(@NonNull Network network, int maxMsToLive) {}
public void onLost(@NonNull Network network) {}
public void onUnavailable() {}
public void onCapabilitiesChanged(@NonNull Network network,
@NonNull NetworkCapabilities networkCapabilities) {}
public void onLinkPropertiesChanged(@NonNull Network network,
@NonNull LinkProperties linkProperties) {}
public void onNetworkSuspended(@NonNull Network network) {}
public void onNetworkResumed(@NonNull Network network) {}
public void onBlockedStatusChanged(@NonNull Network network, boolean blocked) {}
}
public interface Errors {
int TOO_MANY_REQUESTS = 1;
}
public static class TooManyRequestsException extends RuntimeException {}
public static final int CALLBACK_PRECHECK = BASE + 1;
public static final int CALLBACK_AVAILABLE = BASE + 2;
public static final int CALLBACK_LOSING = BASE + 3;
public static final int CALLBACK_LOST = BASE + 4;
public static final int CALLBACK_UNAVAIL = BASE + 5;
public static final int CALLBACK_CAP_CHANGED = BASE + 6;
public static final int CALLBACK_IP_CHANGED = BASE + 7;
private static final int EXPIRE_LEGACY_REQUEST = BASE + 8;
public static final int CALLBACK_SUSPENDED = BASE + 9;
public static final int CALLBACK_RESUMED = BASE + 10;
public static final int CALLBACK_BLK_CHANGED = BASE + 11;
public static String getCallbackName(int whichCallback) {
switch (whichCallback) {
case CALLBACK_PRECHECK: return "CALLBACK_PRECHECK";
case CALLBACK_AVAILABLE: return "CALLBACK_AVAILABLE";
case CALLBACK_LOSING: return "CALLBACK_LOSING";
case CALLBACK_LOST: return "CALLBACK_LOST";
case CALLBACK_UNAVAIL: return "CALLBACK_UNAVAIL";
case CALLBACK_CAP_CHANGED: return "CALLBACK_CAP_CHANGED";
case CALLBACK_IP_CHANGED: return "CALLBACK_IP_CHANGED";
case EXPIRE_LEGACY_REQUEST: return "EXPIRE_LEGACY_REQUEST";
case CALLBACK_SUSPENDED: return "CALLBACK_SUSPENDED";
case CALLBACK_RESUMED: return "CALLBACK_RESUMED";
case CALLBACK_BLK_CHANGED: return "CALLBACK_BLK_CHANGED";
default:
return Integer.toString(whichCallback);
}
}
public void requestNetwork(@NonNull NetworkRequest request,
int timeoutMs, int legacyType, @NonNull Handler handler,
@NonNull NetworkCallback networkCallback) {}
public void requestNetwork(@NonNull NetworkRequest request,
@NonNull NetworkCallback networkCallback) {}
public void requestNetwork(@NonNull NetworkRequest request,
@NonNull NetworkCallback networkCallback, @NonNull Handler handler) {}
public void requestNetwork(@NonNull NetworkRequest request,
@NonNull NetworkCallback networkCallback, int timeoutMs) {}
public void requestNetwork(@NonNull NetworkRequest request,
@NonNull NetworkCallback networkCallback, @NonNull Handler handler, int timeoutMs) {}
public static final String EXTRA_NETWORK = "android.net.extra.NETWORK";
public static final String EXTRA_NETWORK_REQUEST = "android.net.extra.NETWORK_REQUEST";
public void requestNetwork(@NonNull NetworkRequest request,
@NonNull PendingIntent operation) {}
public void releaseNetworkRequest(@NonNull PendingIntent operation) {}
public void registerNetworkCallback(@NonNull NetworkRequest request,
@NonNull NetworkCallback networkCallback) {}
public void registerNetworkCallback(@NonNull NetworkRequest request,
@NonNull NetworkCallback networkCallback, @NonNull Handler handler) {}
public void registerNetworkCallback(@NonNull NetworkRequest request,
@NonNull PendingIntent operation) {}
public void registerDefaultNetworkCallback(@NonNull NetworkCallback networkCallback) {}
public void registerDefaultNetworkCallback(@NonNull NetworkCallback networkCallback,
@NonNull Handler handler) {}
public boolean requestBandwidthUpdate(@NonNull Network network) {
return false;
}
public void unregisterNetworkCallback(@NonNull NetworkCallback networkCallback) {}
public void unregisterNetworkCallback(@NonNull PendingIntent operation) {}
public void setAcceptUnvalidated(Network network, boolean accept, boolean always) {}
public void setAcceptPartialConnectivity(Network network, boolean accept, boolean always) {}
public void setAvoidUnvalidated(Network network) {}
public void startCaptivePortalApp(Network network) {}
public void startCaptivePortalApp(@NonNull Network network, @NonNull Bundle appExtras) {}
public boolean shouldAvoidBadWifi() {
return false;
}
public static final int MULTIPATH_PREFERENCE_HANDOVER = 1 << 0;
public static final int MULTIPATH_PREFERENCE_RELIABILITY = 1 << 1;
public static final int MULTIPATH_PREFERENCE_PERFORMANCE = 1 << 2;
public static final int MULTIPATH_PREFERENCE_UNMETERED =
MULTIPATH_PREFERENCE_HANDOVER |
MULTIPATH_PREFERENCE_RELIABILITY |
MULTIPATH_PREFERENCE_PERFORMANCE;
public @interface MultipathPreference {
}
public @MultipathPreference int getMultipathPreference(@Nullable Network network) {
return 0;
}
public void factoryReset() {}
public boolean bindProcessToNetwork(@Nullable Network network) {
return false;
}
public static boolean setProcessDefaultNetwork(@Nullable Network network) {
return false;
}
@Nullable
public Network getBoundNetworkForProcess() {
return null;
}
@Deprecated
@Nullable
public static Network getProcessDefaultNetwork() {
return null;
}
@Deprecated
public static boolean setProcessDefaultNetworkForHostResolution(Network network) {
return false;
}
public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1;
public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2;
public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3;
public static final String ACTION_RESTRICT_BACKGROUND_CHANGED =
"android.net.conn.RESTRICT_BACKGROUND_CHANGED";
public @interface RestrictBackgroundStatus {
}
public @RestrictBackgroundStatus int getRestrictBackgroundStatus() {
return 0;
}
@Nullable
public byte[] getNetworkWatchlistConfigHash() {
return null;
}
public int getConnectionOwnerUid(
int protocol, @NonNull InetSocketAddress local, @NonNull InetSocketAddress remote) {
return 0;
}
public void simulateDataStall(int detectionMethod, long timestampMillis,
@NonNull Network network, @NonNull PersistableBundle extras) {}
}