1 /**
2  * Copyright (c) 2008, The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.net;
18 
19 import android.app.PendingIntent;
20 import android.net.LinkProperties;
21 import android.net.Network;
22 import android.net.NetworkCapabilities;
23 import android.net.NetworkInfo;
24 import android.net.NetworkMisc;
25 import android.net.NetworkQuotaInfo;
26 import android.net.NetworkRequest;
27 import android.net.NetworkState;
28 import android.net.ProxyInfo;
29 import android.os.IBinder;
30 import android.os.Messenger;
31 import android.os.ParcelFileDescriptor;
32 import android.os.ResultReceiver;
33 
34 import com.android.internal.net.LegacyVpnInfo;
35 import com.android.internal.net.VpnConfig;
36 import com.android.internal.net.VpnInfo;
37 import com.android.internal.net.VpnProfile;
38 
39 /**
40  * Interface that answers queries about, and allows changing, the
41  * state of network connectivity.
42  */
43 /** {@hide} */
44 interface IConnectivityManager
45 {
getActiveNetwork()46     Network getActiveNetwork();
getActiveNetworkInfo()47     NetworkInfo getActiveNetworkInfo();
getActiveNetworkInfoForUid(int uid)48     NetworkInfo getActiveNetworkInfoForUid(int uid);
getNetworkInfo(int networkType)49     NetworkInfo getNetworkInfo(int networkType);
getNetworkInfoForNetwork(in Network network)50     NetworkInfo getNetworkInfoForNetwork(in Network network);
getAllNetworkInfo()51     NetworkInfo[] getAllNetworkInfo();
getNetworkForType(int networkType)52     Network getNetworkForType(int networkType);
getAllNetworks()53     Network[] getAllNetworks();
getDefaultNetworkCapabilitiesForUser(int userId)54     NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(int userId);
55 
isNetworkSupported(int networkType)56     boolean isNetworkSupported(int networkType);
57 
getActiveLinkProperties()58     LinkProperties getActiveLinkProperties();
getLinkPropertiesForType(int networkType)59     LinkProperties getLinkPropertiesForType(int networkType);
getLinkProperties(in Network network)60     LinkProperties getLinkProperties(in Network network);
61 
getNetworkCapabilities(in Network network)62     NetworkCapabilities getNetworkCapabilities(in Network network);
63 
getAllNetworkState()64     NetworkState[] getAllNetworkState();
65 
getActiveNetworkQuotaInfo()66     NetworkQuotaInfo getActiveNetworkQuotaInfo();
isActiveNetworkMetered()67     boolean isActiveNetworkMetered();
68 
requestRouteToHostAddress(int networkType, in byte[] hostAddress)69     boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress);
70 
tether(String iface)71     int tether(String iface);
72 
untether(String iface)73     int untether(String iface);
74 
getLastTetherError(String iface)75     int getLastTetherError(String iface);
76 
isTetheringSupported()77     boolean isTetheringSupported();
78 
getTetherableIfaces()79     String[] getTetherableIfaces();
80 
getTetheredIfaces()81     String[] getTetheredIfaces();
82 
getTetheringErroredIfaces()83     String[] getTetheringErroredIfaces();
84 
getTetheredDhcpRanges()85     String[] getTetheredDhcpRanges();
86 
getTetherableUsbRegexs()87     String[] getTetherableUsbRegexs();
88 
getTetherableWifiRegexs()89     String[] getTetherableWifiRegexs();
90 
getTetherableBluetoothRegexs()91     String[] getTetherableBluetoothRegexs();
92 
setUsbTethering(boolean enable)93     int setUsbTethering(boolean enable);
94 
reportInetCondition(int networkType, int percentage)95     void reportInetCondition(int networkType, int percentage);
96 
reportNetworkConnectivity(in Network network, boolean hasConnectivity)97     void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
98 
getGlobalProxy()99     ProxyInfo getGlobalProxy();
100 
setGlobalProxy(in ProxyInfo p)101     void setGlobalProxy(in ProxyInfo p);
102 
getProxyForNetwork(in Network nework)103     ProxyInfo getProxyForNetwork(in Network nework);
104 
prepareVpn(String oldPackage, String newPackage, int userId)105     boolean prepareVpn(String oldPackage, String newPackage, int userId);
106 
setVpnPackageAuthorization(String packageName, int userId, boolean authorized)107     void setVpnPackageAuthorization(String packageName, int userId, boolean authorized);
108 
establishVpn(in VpnConfig config)109     ParcelFileDescriptor establishVpn(in VpnConfig config);
110 
getVpnConfig(int userId)111     VpnConfig getVpnConfig(int userId);
112 
startLegacyVpn(in VpnProfile profile)113     void startLegacyVpn(in VpnProfile profile);
114 
getLegacyVpnInfo(int userId)115     LegacyVpnInfo getLegacyVpnInfo(int userId);
116 
getAllVpnInfo()117     VpnInfo[] getAllVpnInfo();
118 
updateLockdownVpn()119     boolean updateLockdownVpn();
120 
checkMobileProvisioning(int suggestedTimeOutMs)121     int checkMobileProvisioning(int suggestedTimeOutMs);
122 
getMobileProvisioningUrl()123     String getMobileProvisioningUrl();
124 
setProvisioningNotificationVisible(boolean visible, int networkType, in String action)125     void setProvisioningNotificationVisible(boolean visible, int networkType, in String action);
126 
setAirplaneMode(boolean enable)127     void setAirplaneMode(boolean enable);
128 
registerNetworkFactory(in Messenger messenger, in String name)129     void registerNetworkFactory(in Messenger messenger, in String name);
130 
requestBandwidthUpdate(in Network network)131     boolean requestBandwidthUpdate(in Network network);
132 
unregisterNetworkFactory(in Messenger messenger)133     void unregisterNetworkFactory(in Messenger messenger);
134 
registerNetworkAgent(in Messenger messenger, in NetworkInfo ni, in LinkProperties lp, in NetworkCapabilities nc, int score, in NetworkMisc misc)135     int registerNetworkAgent(in Messenger messenger, in NetworkInfo ni, in LinkProperties lp,
136             in NetworkCapabilities nc, int score, in NetworkMisc misc);
137 
requestNetwork(in NetworkCapabilities networkCapabilities, in Messenger messenger, int timeoutSec, in IBinder binder, int legacy)138     NetworkRequest requestNetwork(in NetworkCapabilities networkCapabilities,
139             in Messenger messenger, int timeoutSec, in IBinder binder, int legacy);
140 
pendingRequestForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation)141     NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
142             in PendingIntent operation);
143 
releasePendingNetworkRequest(in PendingIntent operation)144     void releasePendingNetworkRequest(in PendingIntent operation);
145 
listenForNetwork(in NetworkCapabilities networkCapabilities, in Messenger messenger, in IBinder binder)146     NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
147             in Messenger messenger, in IBinder binder);
148 
pendingListenForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation)149     void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
150             in PendingIntent operation);
151 
releaseNetworkRequest(in NetworkRequest networkRequest)152     void releaseNetworkRequest(in NetworkRequest networkRequest);
153 
setAcceptUnvalidated(in Network network, boolean accept, boolean always)154     void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
155 
getRestoreDefaultNetworkDelay(int networkType)156     int getRestoreDefaultNetworkDelay(int networkType);
157 
addVpnAddress(String address, int prefixLength)158     boolean addVpnAddress(String address, int prefixLength);
removeVpnAddress(String address, int prefixLength)159     boolean removeVpnAddress(String address, int prefixLength);
setUnderlyingNetworksForVpn(in Network[] networks)160     boolean setUnderlyingNetworksForVpn(in Network[] networks);
161 
factoryReset()162     void factoryReset();
163 }
164