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 19d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwaltimport android.net.LinkProperties; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.NetworkInfo; 21f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkeyimport android.net.NetworkQuotaInfo; 22d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.net.NetworkState; 23434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwaltimport android.net.ProxyProperties; 2442acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwaltimport android.os.IBinder; 25ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yehimport android.os.ParcelFileDescriptor; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 272e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yehimport com.android.internal.net.LegacyVpnInfo; 2804ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yehimport com.android.internal.net.VpnConfig; 2904ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface that answers queries about, and allows changing, the 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * state of network connectivity. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */ 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IConnectivityManager 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setNetworkPreference(int pref); 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getNetworkPreference(); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo getActiveNetworkInfo(); 42c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey NetworkInfo getActiveNetworkInfoForUid(int uid); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo getNetworkInfo(int networkType); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NetworkInfo[] getAllNetworkInfo(); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt boolean isNetworkSupported(int networkType); 479b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt 48d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt LinkProperties getActiveLinkProperties(); 49d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt LinkProperties getLinkProperties(int networkType); 50d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt 51d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey NetworkState[] getAllNetworkState(); 52d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 53f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey NetworkQuotaInfo getActiveNetworkQuotaInfo(); 549f7cbf0e50bcb7e9163b23524814003ba8784732Jeff Sharkey boolean isActiveNetworkMetered(); 55f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setRadios(boolean onOff); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setRadio(int networkType, boolean turnOn); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6042acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt int startUsingNetworkFeature(int networkType, in String feature, 6142acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt in IBinder binder); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int stopUsingNetworkFeature(int networkType, in String feature); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean requestRouteToHost(int networkType, int hostAddress); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 67585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress); 68585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt 69c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt boolean getMobileDataEnabled(); 70c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt void setMobileDataEnabled(boolean enabled); 71c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt 728e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey /** Policy control over specific {@link NetworkStateTracker}. */ 738e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey void setPolicyDataEnable(int networkType, boolean enabled); 748e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey 755a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int tether(String iface); 76d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 775a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int untether(String iface); 785a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt 795a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt int getLastTetherError(String iface); 80d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 812a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt boolean isTetheringSupported(); 822a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 83d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String[] getTetherableIfaces(); 84d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt 85d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt String[] getTetheredIfaces(); 862a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 87cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey /** 88cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey * Return list of interface pairs that are actively tethered. Even indexes are 89cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey * remote interface, and odd indexes are corresponding local interfaces. 90cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey */ 91cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey String[] getTetheredIfacePairs(); 92cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey 935a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt String[] getTetheringErroredIfaces(); 945a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt 952a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt String[] getTetherableUsbRegexs(); 962a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt 972a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt String[] getTetherableWifiRegexs(); 9814f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt 996fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang String[] getTetherableBluetoothRegexs(); 1006fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang 1016c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood int setUsbTethering(boolean enable); 1026c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood 10314f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt void requestNetworkTransitionWakelock(in String forWhom); 104ca4306c976d393c3cd04270bc2de0af2f4f30fa5Robert Greenwalt 105d7085fcf6567452a9d6fc69b0c6b1bf556f4c1b9Robert Greenwalt void reportInetCondition(int networkType, int percentage); 106434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 107434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt ProxyProperties getGlobalProxy(); 108434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 109434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt void setGlobalProxy(in ProxyProperties p); 110434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt 111434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt ProxyProperties getProxy(); 112d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt 113d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt void setDataDependency(int networkType, boolean met); 114ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 1155779c9c2d9f1f7a28279fe907aebbb43981286fdChia-chi Yeh boolean protectVpn(in ParcelFileDescriptor socket); 116ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 117100155a310fbb5028fc48e359bdfb7c4d3531843Chia-chi Yeh boolean prepareVpn(String oldPackage, String newPackage); 118ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh 11904ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh ParcelFileDescriptor establishVpn(in VpnConfig config); 12077fd485c2ff780d1e6ef0ba1e3e811370ecbc528Chia-chi Yeh 1212e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh void startLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); 1222e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh 1232e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh LegacyVpnInfo getLegacyVpnInfo(); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 125