19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (c) 2008, The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 46fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * Licensed under the Apache License, Version 2.0 (the "License"); 56fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * you may not use this file except in compliance with the License. 66fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 86fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 106fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * Unless required by applicable law or agreed to in writing, software 116fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * distributed under the License is distributed on an "AS IS" BASIS, 126fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.net; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwaltimport android.app.PendingIntent; 206a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapndeimport android.net.LinkQualityInfo; 21d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwaltimport android.net.LinkProperties; 229258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwaltimport android.net.Network; 237b81602f3c18df8a4ca0342c514af8f7e394c0d7Robert Greenwaltimport android.net.NetworkCapabilities; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.NetworkInfo; 258cd33ed84e94036a5e1201485af7603dc6fb0d9bSreeram Ramachandranimport android.net.NetworkMisc; 26f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkeyimport android.net.NetworkQuotaInfo; 279258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwaltimport android.net.NetworkRequest; 28d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.net.NetworkState; 29207900c23b26d0df9ab28c709db4a1007d7d7904Jason Monkimport android.net.ProxyInfo; 3042acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwaltimport android.os.IBinder; 31665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwaltimport android.os.Messenger; 32ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yehimport android.os.ParcelFileDescriptor; 33ab9321d13de29cf314e8a1774b592d1f1d7e94d8Wink Savilleimport android.os.ResultReceiver; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 352e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yehimport com.android.internal.net.LegacyVpnInfo; 3604ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yehimport com.android.internal.net.VpnConfig; 3782f8521d386f3109147c477d04e5e90e5c715fa0Jeff Sharkeyimport com.android.internal.net.VpnProfile; 3804ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface that answers queries about, and allows changing, the 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * state of network connectivity. 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IConnectivityManager 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo getActiveNetworkInfo(); 47c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey NetworkInfo getActiveNetworkInfoForUid(int uid); 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo getNetworkInfo(int networkType); 4973b6cbae0cf6ca71453c526895a735130e72c9c0Robert Greenwalt NetworkInfo getNetworkInfoForNetwork(in Network network); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo[] getAllNetworkInfo(); 51b57edc5ae999abd9c7310833f4f10bbacbc469d7Lorenzo Colitti Network getNetworkForType(int networkType); 5273b6cbae0cf6ca71453c526895a735130e72c9c0Robert Greenwalt Network[] getAllNetworks(); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 54948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville NetworkInfo getProvisioningOrActiveNetworkInfo(); 55948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville 569b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt boolean isNetworkSupported(int networkType); 579b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt 58d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt LinkProperties getActiveLinkProperties(); 599258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt LinkProperties getLinkPropertiesForType(int networkType); 609258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt LinkProperties getLinkProperties(in Network network); 619258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 629258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt NetworkCapabilities getNetworkCapabilities(in Network network); 63d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt 64d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey NetworkState[] getAllNetworkState(); 65d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 66f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey NetworkQuotaInfo getActiveNetworkQuotaInfo(); 679f7cbf0e50bcb7e9163b23524814003ba8784732Jeff Sharkey boolean isActiveNetworkMetered(); 68f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey 6903666c705ddabe0e7c5869ab69c2ca8b964164e9Sreeram Ramachandran boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress); 70585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt 718e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey /** Policy control over specific {@link NetworkStateTracker}. */ 728e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey void setPolicyDataEnable(int networkType, boolean enabled); 738e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey 745a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int tether(String iface); 75d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 765a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int untether(String iface); 775a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt 785a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int getLastTetherError(String iface); 79d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 802a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt boolean isTetheringSupported(); 812a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 82d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String[] getTetherableIfaces(); 83d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 84d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String[] getTetheredIfaces(); 852a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 865a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt String[] getTetheringErroredIfaces(); 875a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt 889c7e2c2cb491268db0322ad78856faf0582e61d1Robert Greenwalt String[] getTetheredDhcpRanges(); 899c7e2c2cb491268db0322ad78856faf0582e61d1Robert Greenwalt 902a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt String[] getTetherableUsbRegexs(); 912a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 922a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt String[] getTetherableWifiRegexs(); 9314f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt 946fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang String[] getTetherableBluetoothRegexs(); 956fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang 966c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood int setUsbTethering(boolean enable); 976c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood 98d7085fcf6567452a9d6fc69b0c6b1bf556f4c1b9Robert Greenwalt void reportInetCondition(int networkType, int percentage); 99434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 1009258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt void reportBadNetwork(in Network network); 1019258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 102207900c23b26d0df9ab28c709db4a1007d7d7904Jason Monk ProxyInfo getGlobalProxy(); 103434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 104207900c23b26d0df9ab28c709db4a1007d7d7904Jason Monk void setGlobalProxy(in ProxyInfo p); 105434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 106207900c23b26d0df9ab28c709db4a1007d7d7904Jason Monk ProxyInfo getProxy(); 107d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt 108d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt void setDataDependency(int networkType, boolean met); 109ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 110100155a310fbb5028fc48e359bdfb7c4d3531843Chia-chi Yeh boolean prepareVpn(String oldPackage, String newPackage); 111ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 11205542603dd4f1e0ea47a3dca01de3999a9a329a9Jeff Davidson void setVpnPackageAuthorization(boolean authorized); 11305542603dd4f1e0ea47a3dca01de3999a9a329a9Jeff Davidson 11404ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh ParcelFileDescriptor establishVpn(in VpnConfig config); 11577fd485c2ff780d1e6ef0ba1e3e811370ecbc528Chia-chi Yeh 116bf6ff2c025405a3af496fe558dfc4468a9b45cc8Chad Brubaker VpnConfig getVpnConfig(); 117bf6ff2c025405a3af496fe558dfc4468a9b45cc8Chad Brubaker 11882f8521d386f3109147c477d04e5e90e5c715fa0Jeff Sharkey void startLegacyVpn(in VpnProfile profile); 1192e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh 1202e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh LegacyVpnInfo getLegacyVpnInfo(); 12169ddab4575ff684c533c995e07ca15fe18543fc0Jeff Sharkey 12269ddab4575ff684c533c995e07ca15fe18543fc0Jeff Sharkey boolean updateLockdownVpn(); 123da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff 124d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville void captivePortalCheckCompleted(in NetworkInfo info, boolean isCaptivePortal); 125d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville 126665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt void supplyMessenger(int networkType, in Messenger messenger); 1271b0ca9dace3fb3b84f8a87e539c0179e6093b423Robert Greenwalt 1281b0ca9dace3fb3b84f8a87e539c0179e6093b423Robert Greenwalt int findConnectionTypeForIface(in String iface); 129ab9321d13de29cf314e8a1774b592d1f1d7e94d8Wink Saville 130948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville int checkMobileProvisioning(int suggestedTimeOutMs); 131e182bfe398a132236f723a76522bacd4d6d4c0a4Robert Greenwalt 132e182bfe398a132236f723a76522bacd4d6d4c0a4Robert Greenwalt String getMobileProvisioningUrl(); 13342d4f08db2c15e1829c1fc5d1942cf029ab0895bWink Saville 13442d4f08db2c15e1829c1fc5d1942cf029ab0895bWink Saville String getMobileRedirectedProvisioningUrl(); 1351f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 1366a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde LinkQualityInfo getLinkQualityInfo(int networkType); 1371f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 1386a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde LinkQualityInfo getActiveLinkQualityInfo(); 1391f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 1406a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde LinkQualityInfo[] getAllLinkQualityInfo(); 1411f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 14289e0f0937a70d73b5ed188c9337b4d33860e5573Paul Jensen void setProvisioningNotificationVisible(boolean visible, int networkType, in String action); 1435cd1a0e8d77972ad6cee2625a7e21082932042c2Yuhao Zheng 1445cd1a0e8d77972ad6cee2625a7e21082932042c2Yuhao Zheng void setAirplaneMode(boolean enable); 145e049c23980409be6576da3d30538a6cdc43854ddRobert Greenwalt 146a67be03f9e2734c0a6c03af20e17f963daaed257Robert Greenwalt void registerNetworkFactory(in Messenger messenger, in String name); 147a67be03f9e2734c0a6c03af20e17f963daaed257Robert Greenwalt 148a67be03f9e2734c0a6c03af20e17f963daaed257Robert Greenwalt void unregisterNetworkFactory(in Messenger messenger); 1497b81602f3c18df8a4ca0342c514af8f7e394c0d7Robert Greenwalt 1509258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt void registerNetworkAgent(in Messenger messenger, in NetworkInfo ni, in LinkProperties lp, 1518cd33ed84e94036a5e1201485af7603dc6fb0d9bSreeram Ramachandran in NetworkCapabilities nc, int score, in NetworkMisc misc); 1529258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 1539258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt NetworkRequest requestNetwork(in NetworkCapabilities networkCapabilities, 154b90b20b5d57809da5c91bac9ff45c2ac323d9637Robert Greenwalt in Messenger messenger, int timeoutSec, in IBinder binder, int legacy); 1559258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 1569258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities, 1579258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt in PendingIntent operation); 1589258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 1599258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities, 1609258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt in Messenger messenger, in IBinder binder); 1619258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 1629258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt void pendingListenForNetwork(in NetworkCapabilities networkCapabilities, 1639258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt in PendingIntent operation); 1649258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt 1659258c64bef1a01fe89bc7c1fa402c44c0e6a1255Robert Greenwalt void releaseNetworkRequest(in NetworkRequest networkRequest); 16671bf33a02f49444fbfa35b267c70592f3b07a07dRobert Greenwalt 16771bf33a02f49444fbfa35b267c70592f3b07a07dRobert Greenwalt int getRestoreDefaultNetworkDelay(int networkType); 168f4e0c0cb8ef22fdb20ae74b444c9f4b7d15ded8bSreeram Ramachandran 169f4e0c0cb8ef22fdb20ae74b444c9f4b7d15ded8bSreeram Ramachandran boolean addVpnAddress(String address, int prefixLength); 170f4e0c0cb8ef22fdb20ae74b444c9f4b7d15ded8bSreeram Ramachandran boolean removeVpnAddress(String address, int prefixLength); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 172