1/** 2 * Copyright (c) 2008, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.net; 18 19import android.app.PendingIntent; 20import android.net.LinkProperties; 21import android.net.Network; 22import android.net.NetworkCapabilities; 23import android.net.NetworkInfo; 24import android.net.NetworkMisc; 25import android.net.NetworkQuotaInfo; 26import android.net.NetworkRequest; 27import android.net.NetworkState; 28import android.net.ProxyInfo; 29import android.os.IBinder; 30import android.os.Messenger; 31import android.os.ParcelFileDescriptor; 32import android.os.ResultReceiver; 33 34import com.android.internal.net.LegacyVpnInfo; 35import com.android.internal.net.VpnConfig; 36import com.android.internal.net.VpnInfo; 37import com.android.internal.net.VpnProfile; 38 39/** 40 * Interface that answers queries about, and allows changing, the 41 * state of network connectivity. 42 */ 43/** {@hide} */ 44interface IConnectivityManager 45{ 46 Network getActiveNetwork(); 47 Network getActiveNetworkForUid(int uid, boolean ignoreBlocked); 48 NetworkInfo getActiveNetworkInfo(); 49 NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked); 50 NetworkInfo getNetworkInfo(int networkType); 51 NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked); 52 NetworkInfo[] getAllNetworkInfo(); 53 Network getNetworkForType(int networkType); 54 Network[] getAllNetworks(); 55 NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(int userId); 56 57 boolean isNetworkSupported(int networkType); 58 59 LinkProperties getActiveLinkProperties(); 60 LinkProperties getLinkPropertiesForType(int networkType); 61 LinkProperties getLinkProperties(in Network network); 62 63 NetworkCapabilities getNetworkCapabilities(in Network network); 64 65 NetworkState[] getAllNetworkState(); 66 67 NetworkQuotaInfo getActiveNetworkQuotaInfo(); 68 boolean isActiveNetworkMetered(); 69 70 boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress); 71 72 int tether(String iface); 73 74 int untether(String iface); 75 76 int getLastTetherError(String iface); 77 78 boolean isTetheringSupported(); 79 80 void startTethering(int type, in ResultReceiver receiver, boolean showProvisioningUi); 81 82 void stopTethering(int type); 83 84 String[] getTetherableIfaces(); 85 86 String[] getTetheredIfaces(); 87 88 String[] getTetheringErroredIfaces(); 89 90 String[] getTetheredDhcpRanges(); 91 92 String[] getTetherableUsbRegexs(); 93 94 String[] getTetherableWifiRegexs(); 95 96 String[] getTetherableBluetoothRegexs(); 97 98 int setUsbTethering(boolean enable); 99 100 void reportInetCondition(int networkType, int percentage); 101 102 void reportNetworkConnectivity(in Network network, boolean hasConnectivity); 103 104 ProxyInfo getGlobalProxy(); 105 106 void setGlobalProxy(in ProxyInfo p); 107 108 ProxyInfo getProxyForNetwork(in Network nework); 109 110 boolean prepareVpn(String oldPackage, String newPackage, int userId); 111 112 void setVpnPackageAuthorization(String packageName, int userId, boolean authorized); 113 114 ParcelFileDescriptor establishVpn(in VpnConfig config); 115 116 VpnConfig getVpnConfig(int userId); 117 118 void startLegacyVpn(in VpnProfile profile); 119 120 LegacyVpnInfo getLegacyVpnInfo(int userId); 121 122 VpnInfo[] getAllVpnInfo(); 123 124 boolean updateLockdownVpn(); 125 boolean setAlwaysOnVpnPackage(int userId, String packageName, boolean lockdown); 126 String getAlwaysOnVpnPackage(int userId); 127 128 int checkMobileProvisioning(int suggestedTimeOutMs); 129 130 String getMobileProvisioningUrl(); 131 132 void setProvisioningNotificationVisible(boolean visible, int networkType, in String action); 133 134 void setAirplaneMode(boolean enable); 135 136 void registerNetworkFactory(in Messenger messenger, in String name); 137 138 boolean requestBandwidthUpdate(in Network network); 139 140 void unregisterNetworkFactory(in Messenger messenger); 141 142 int registerNetworkAgent(in Messenger messenger, in NetworkInfo ni, in LinkProperties lp, 143 in NetworkCapabilities nc, int score, in NetworkMisc misc); 144 145 NetworkRequest requestNetwork(in NetworkCapabilities networkCapabilities, 146 in Messenger messenger, int timeoutSec, in IBinder binder, int legacy); 147 148 NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities, 149 in PendingIntent operation); 150 151 void releasePendingNetworkRequest(in PendingIntent operation); 152 153 NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities, 154 in Messenger messenger, in IBinder binder); 155 156 void pendingListenForNetwork(in NetworkCapabilities networkCapabilities, 157 in PendingIntent operation); 158 159 void requestLinkProperties(in NetworkRequest networkRequest); 160 void requestNetworkCapabilities(in NetworkRequest networkRequest); 161 void releaseNetworkRequest(in NetworkRequest networkRequest); 162 163 void setAcceptUnvalidated(in Network network, boolean accept, boolean always); 164 void setAvoidUnvalidated(in Network network); 165 166 int getRestoreDefaultNetworkDelay(int networkType); 167 168 boolean addVpnAddress(String address, int prefixLength); 169 boolean removeVpnAddress(String address, int prefixLength); 170 boolean setUnderlyingNetworksForVpn(in Network[] networks); 171 172 void factoryReset(); 173 174 void startNattKeepalive(in Network network, int intervalSeconds, in Messenger messenger, 175 in IBinder binder, String srcAddr, int srcPort, String dstAddr); 176 177 void stopKeepalive(in Network network, int slot); 178 179 String getCaptivePortalServerUrl(); 180} 181