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 17 package android.net; 18 19 import android.app.PendingIntent; 20 import android.net.LinkProperties; 21 import android.net.Network; 22 import android.net.NetworkCapabilities; 23 import android.net.NetworkInfo; 24 import android.net.NetworkMisc; 25 import android.net.NetworkQuotaInfo; 26 import android.net.NetworkRequest; 27 import android.net.NetworkState; 28 import android.net.ProxyInfo; 29 import android.os.IBinder; 30 import android.os.Messenger; 31 import android.os.ParcelFileDescriptor; 32 import android.os.ResultReceiver; 33 34 import com.android.internal.net.LegacyVpnInfo; 35 import com.android.internal.net.VpnConfig; 36 import com.android.internal.net.VpnInfo; 37 import 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} */ 44 interface 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 releaseNetworkRequest(in NetworkRequest networkRequest); 160 161 void setAcceptUnvalidated(in Network network, boolean accept, boolean always); 162 163 int getRestoreDefaultNetworkDelay(int networkType); 164 165 boolean addVpnAddress(String address, int prefixLength); 166 boolean removeVpnAddress(String address, int prefixLength); 167 boolean setUnderlyingNetworksForVpn(in Network[] networks); 168 169 void factoryReset(); 170 171 void startNattKeepalive(in Network network, int intervalSeconds, in Messenger messenger, 172 in IBinder binder, String srcAddr, int srcPort, String dstAddr); 173 174 void stopKeepalive(in Network network, int slot); 175 176 String getCaptivePortalServerUrl(); 177 } 178