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