IConnectivityManager.aidl revision 1b0ca9dace3fb3b84f8a87e539c0179e6093b423
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;
25665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwaltimport android.os.Messenger;
26ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yehimport android.os.ParcelFileDescriptor;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
282e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yehimport com.android.internal.net.LegacyVpnInfo;
2904ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yehimport com.android.internal.net.VpnConfig;
3082f8521d386f3109147c477d04e5e90e5c715fa0Jeff Sharkeyimport com.android.internal.net.VpnProfile;
3104ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface that answers queries about, and allows changing, the
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * state of network connectivity.
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IConnectivityManager
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setNetworkPreference(int pref);
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getNetworkPreference();
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NetworkInfo getActiveNetworkInfo();
44c006f1aec15454782c35e028ad64d79a5c161cc1Jeff Sharkey    NetworkInfo getActiveNetworkInfoForUid(int uid);
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NetworkInfo getNetworkInfo(int networkType);
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NetworkInfo[] getAllNetworkInfo();
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt    boolean isNetworkSupported(int networkType);
499b2886e24301e5d4e7052ec4a6eaff273d3f516cRobert Greenwalt
50d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt    LinkProperties getActiveLinkProperties();
51d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt    LinkProperties getLinkProperties(int networkType);
52d192dad69e9e5a820c5c11d8cd34460c9cc2ed11Robert Greenwalt
53d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey    NetworkState[] getAllNetworkState();
54d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey
55f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey    NetworkQuotaInfo getActiveNetworkQuotaInfo();
569f7cbf0e50bcb7e9163b23524814003ba8784732Jeff Sharkey    boolean isActiveNetworkMetered();
57f0ceede8fff5df24e5c98701d81c2b71eb138aa9Jeff Sharkey
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadios(boolean onOff);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean setRadio(int networkType, boolean turnOn);
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6242acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt    int startUsingNetworkFeature(int networkType, in String feature,
6342acef37339afe6ac608c842f1637870ee9c4f6cRobert Greenwalt            in IBinder binder);
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int stopUsingNetworkFeature(int networkType, in String feature);
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean requestRouteToHost(int networkType, int hostAddress);
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt    boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress);
70585ac0fc8dde3fe35ec4c71c8f215f2c84139b8bRobert Greenwalt
71c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt    boolean getMobileDataEnabled();
72c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt    void setMobileDataEnabled(boolean enabled);
73c03fa5014912684367174ff3cce664deb29f5e0eRobert Greenwalt
748e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey    /** Policy control over specific {@link NetworkStateTracker}. */
758e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey    void setPolicyDataEnable(int networkType, boolean enabled);
768e28b7d78232f6cf08739ca0d129cc7f9e650801Jeff Sharkey
775a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt    int tether(String iface);
78d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt
795a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt    int untether(String iface);
805a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt
815a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt    int getLastTetherError(String iface);
82d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt
832a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt    boolean isTetheringSupported();
842a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt
85d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt    String[] getTetherableIfaces();
86d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt
87d0e18ffb82b59d38aeaf0e552f48e734202719abRobert Greenwalt    String[] getTetheredIfaces();
882a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt
89cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey    /**
90cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey     * Return list of interface pairs that are actively tethered.  Even indexes are
91cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey     * remote interface, and odd indexes are corresponding local interfaces.
92cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey     */
93cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey    String[] getTetheredIfacePairs();
94cdd02c5d76d3dd4e21b5bb922d7fcfb86efec85fJeff Sharkey
955a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt    String[] getTetheringErroredIfaces();
965a73506cdd466f2b96686ced3ff0f7ca224d1143Robert Greenwalt
972a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt    String[] getTetherableUsbRegexs();
982a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt
992a091d7aa0c174986387e5d56bf97a87fe075bdbRobert Greenwalt    String[] getTetherableWifiRegexs();
10014f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt
1016fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang    String[] getTetherableBluetoothRegexs();
1026fdd0c6274c81b337ad35b70480f881daf7354c3Danica Chang
1036c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood    int setUsbTethering(boolean enable);
1046c2260b3af3a9243aa7f04cf03106f31817cb4c1Mike Lockwood
10514f2ef4c9da27a3d58d65dc9f684c5f764ee279aRobert Greenwalt    void requestNetworkTransitionWakelock(in String forWhom);
106ca4306c976d393c3cd04270bc2de0af2f4f30fa5Robert Greenwalt
107d7085fcf6567452a9d6fc69b0c6b1bf556f4c1b9Robert Greenwalt    void reportInetCondition(int networkType, int percentage);
108434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
109434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt    ProxyProperties getGlobalProxy();
110434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
111434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt    void setGlobalProxy(in ProxyProperties p);
112434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt
113434203a277cd2f237a71508a3d5a7d1602126cd5Robert Greenwalt    ProxyProperties getProxy();
114d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt
115d55a6b498d66d8fc415908ecf63e50f46cce67e8Robert Greenwalt    void setDataDependency(int networkType, boolean met);
116ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh
1175779c9c2d9f1f7a28279fe907aebbb43981286fdChia-chi Yeh    boolean protectVpn(in ParcelFileDescriptor socket);
118ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh
119100155a310fbb5028fc48e359bdfb7c4d3531843Chia-chi Yeh    boolean prepareVpn(String oldPackage, String newPackage);
120ff3bdca31f4cf2bd607519b276dd175763aa1784Chia-chi Yeh
12104ba25c418bc4538e9dc0f047cfb9608d358f679Chia-chi Yeh    ParcelFileDescriptor establishVpn(in VpnConfig config);
12277fd485c2ff780d1e6ef0ba1e3e811370ecbc528Chia-chi Yeh
12382f8521d386f3109147c477d04e5e90e5c715fa0Jeff Sharkey    void startLegacyVpn(in VpnProfile profile);
1242e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh
1252e46764a707bd14cad22bc179669eeecb2d7c647Chia-chi Yeh    LegacyVpnInfo getLegacyVpnInfo();
12669ddab4575ff684c533c995e07ca15fe18543fc0Jeff Sharkey
12769ddab4575ff684c533c995e07ca15fe18543fc0Jeff Sharkey    boolean updateLockdownVpn();
128da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff
129da6da0907b28d4704aabbdb1bbeb4300954670d1Irfan Sheriff    void captivePortalCheckComplete(in NetworkInfo info);
130665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt
131665e1aed5e99af1e66af56c0d73e32fd86f57273Robert Greenwalt    void supplyMessenger(int networkType, in Messenger messenger);
1321b0ca9dace3fb3b84f8a87e539c0179e6093b423Robert Greenwalt
1331b0ca9dace3fb3b84f8a87e539c0179e6093b423Robert Greenwalt    int findConnectionTypeForIface(in String iface);
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
135