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 196a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapndeimport android.net.LinkQualityInfo; 20d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwaltimport android.net.LinkProperties; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.NetworkInfo; 22f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkeyimport android.net.NetworkQuotaInfo; 23d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.net.NetworkState; 24434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwaltimport android.net.ProxyProperties; 2542acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwaltimport android.os.IBinder; 26665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwaltimport android.os.Messenger; 27ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yehimport android.os.ParcelFileDescriptor; 28ab9321d13de29cf314e8a1774b592d1f1d7e94d8Wink Savilleimport android.os.ResultReceiver; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 302e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yehimport com.android.internal.net.LegacyVpnInfo; 3104ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yehimport com.android.internal.net.VpnConfig; 3282f8521d386f3109147c477d04e5e90e5c715fa0Jeff Sharkeyimport com.android.internal.net.VpnProfile; 3304ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface that answers queries about, and allows changing, the 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * state of network connectivity. 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */ 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IConnectivityManager 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 41d1c87546b37658fbc38cb33504cc726a07e0c4eaChad Brubaker // Keep this in sync with framework/native/services/connectivitymanager/ConnectivityManager.h 42d1c87546b37658fbc38cb33504cc726a07e0c4eaChad Brubaker void markSocketAsUser(in ParcelFileDescriptor socket, int uid); 43d1c87546b37658fbc38cb33504cc726a07e0c4eaChad Brubaker 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setNetworkPreference(int pref); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getNetworkPreference(); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo getActiveNetworkInfo(); 49c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey NetworkInfo getActiveNetworkInfoForUid(int uid); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo getNetworkInfo(int networkType); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo[] getAllNetworkInfo(); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 53948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville NetworkInfo getProvisioningOrActiveNetworkInfo(); 54948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville 559b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt boolean isNetworkSupported(int networkType); 569b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt 57d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt LinkProperties getActiveLinkProperties(); 58d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt LinkProperties getLinkProperties(int networkType); 59d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt 60d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey NetworkState[] getAllNetworkState(); 61d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 62f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey NetworkQuotaInfo getActiveNetworkQuotaInfo(); 639f7cbf0e50bcb7e9163b23524814003ba8784732Jeff Sharkey boolean isActiveNetworkMetered(); 64f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setRadios(boolean onOff); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setRadio(int networkType, boolean turnOn); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6942acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt int startUsingNetworkFeature(int networkType, in String feature, 7042acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt in IBinder binder); 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int stopUsingNetworkFeature(int networkType, in String feature); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7418dd015e6edfb5f46e364f89f84e43d356d58c4aChad Brubaker boolean requestRouteToHost(int networkType, int hostAddress, String packageName); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7618dd015e6edfb5f46e364f89f84e43d356d58c4aChad Brubaker boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress, String packageName); 77585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt 78c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt boolean getMobileDataEnabled(); 79c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt void setMobileDataEnabled(boolean enabled); 80c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt 818e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey /** Policy control over specific {@link NetworkStateTracker}. */ 828e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey void setPolicyDataEnable(int networkType, boolean enabled); 838e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey 845a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int tether(String iface); 85d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 865a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int untether(String iface); 875a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt 885a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int getLastTetherError(String iface); 89d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 902a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt boolean isTetheringSupported(); 912a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 92d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String[] getTetherableIfaces(); 93d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 94d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String[] getTetheredIfaces(); 952a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 965a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt String[] getTetheringErroredIfaces(); 975a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt 982a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt String[] getTetherableUsbRegexs(); 992a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 1002a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt String[] getTetherableWifiRegexs(); 10114f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt 1026fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang String[] getTetherableBluetoothRegexs(); 1036fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang 1046c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood int setUsbTethering(boolean enable); 1056c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood 10614f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt void requestNetworkTransitionWakelock(in String forWhom); 107ca4306c976d393c3cd04270bc2de0af2f4f30fa5Robert Greenwalt 108d7085fcf6567452a9d6fc69b0c6b1bf556f4c1b9Robert Greenwalt void reportInetCondition(int networkType, int percentage); 109434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 110434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt ProxyProperties getGlobalProxy(); 111434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 112434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt void setGlobalProxy(in ProxyProperties p); 113434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 114434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt ProxyProperties getProxy(); 115d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt 116d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt void setDataDependency(int networkType, boolean met); 117ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 1185779c9c2d9f1f7a28279fe907aebbb43981286fdChia-chi Yeh boolean protectVpn(in ParcelFileDescriptor socket); 119ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 120100155a310fbb5028fc48e359bdfb7c4d3531843Chia-chi Yeh boolean prepareVpn(String oldPackage, String newPackage); 121ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 12204ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh ParcelFileDescriptor establishVpn(in VpnConfig config); 12377fd485c2ff780d1e6ef0ba1e3e811370ecbc528Chia-chi Yeh 124bf6ff2c025405a3af496fe558dfc4468a9b45cc8Chad Brubaker VpnConfig getVpnConfig(); 125bf6ff2c025405a3af496fe558dfc4468a9b45cc8Chad Brubaker 12682f8521d386f3109147c477d04e5e90e5c715fa0Jeff Sharkey void startLegacyVpn(in VpnProfile profile); 1272e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh 1282e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh LegacyVpnInfo getLegacyVpnInfo(); 12969ddab4575ff684c533c995e07ca15fe18543fc0Jeff Sharkey 13069ddab4575ff684c533c995e07ca15fe18543fc0Jeff Sharkey boolean updateLockdownVpn(); 131da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff 132da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff void captivePortalCheckComplete(in NetworkInfo info); 133665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt 134d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville void captivePortalCheckCompleted(in NetworkInfo info, boolean isCaptivePortal); 135d747cbc898ef44e59c3fbf74a8327b6a12aad397Wink Saville 136665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt void supplyMessenger(int networkType, in Messenger messenger); 1371b0ca9dace3fb3b84f8a87e539c0179e6093b423Robert Greenwalt 1381b0ca9dace3fb3b84f8a87e539c0179e6093b423Robert Greenwalt int findConnectionTypeForIface(in String iface); 139ab9321d13de29cf314e8a1774b592d1f1d7e94d8Wink Saville 140948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville int checkMobileProvisioning(int suggestedTimeOutMs); 141e182bfe398a132236f723a76522bacd4d6d4c0a4Robert Greenwalt 142e182bfe398a132236f723a76522bacd4d6d4c0a4Robert Greenwalt String getMobileProvisioningUrl(); 14342d4f08db2c15e1829c1fc5d1942cf029ab0895bWink Saville 14442d4f08db2c15e1829c1fc5d1942cf029ab0895bWink Saville String getMobileRedirectedProvisioningUrl(); 1451f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 1466a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde LinkQualityInfo getLinkQualityInfo(int networkType); 1471f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 1486a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde LinkQualityInfo getActiveLinkQualityInfo(); 1491f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 1506a2d32597a3f158f4ff5b07ad61c7d892d08f3bfVinit Deshapnde LinkQualityInfo[] getAllLinkQualityInfo(); 1511f12cb52a494a3eaefc62d03a8d2fdf47a5535e9Vinit Deshapnde 152948282b0e6cf5310f09db97a4ae939db7c1cef72Wink Saville void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url); 1535cd1a0e8d77972ad6cee2625a7e21082932042c2Yuhao Zheng 1545cd1a0e8d77972ad6cee2625a7e21082932042c2Yuhao Zheng void setAirplaneMode(boolean enable); 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 156