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
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean requestRouteToHost(int networkType, int hostAddress);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
76585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt    boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress);
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