• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.ConnectionInfo;
21 import android.net.ConnectivityDiagnosticsManager;
22 import android.net.IConnectivityDiagnosticsCallback;
23 import android.net.INetworkAgent;
24 import android.net.IOnCompleteListener;
25 import android.net.INetworkActivityListener;
26 import android.net.INetworkOfferCallback;
27 import android.net.IQosCallback;
28 import android.net.ISocketKeepaliveCallback;
29 import android.net.LinkProperties;
30 import android.net.Network;
31 import android.net.NetworkAgentConfig;
32 import android.net.NetworkCapabilities;
33 import android.net.NetworkInfo;
34 import android.net.NetworkRequest;
35 import android.net.NetworkScore;
36 import android.net.NetworkState;
37 import android.net.NetworkStateSnapshot;
38 import android.net.OemNetworkPreferences;
39 import android.net.ProfileNetworkPreference;
40 import android.net.ProxyInfo;
41 import android.net.UidRange;
42 import android.net.QosSocketInfo;
43 import android.os.Bundle;
44 import android.os.IBinder;
45 import android.os.Messenger;
46 import android.os.ParcelFileDescriptor;
47 import android.os.PersistableBundle;
48 import android.os.ResultReceiver;
49 import android.os.UserHandle;
50 
51 /**
52  * Interface that answers queries about, and allows changing, the
53  * state of network connectivity.
54  */
55 /** {@hide} */
56 interface IConnectivityManager
57 {
getActiveNetwork()58     Network getActiveNetwork();
getActiveNetworkForUid(int uid, boolean ignoreBlocked)59     Network getActiveNetworkForUid(int uid, boolean ignoreBlocked);
60     @UnsupportedAppUsage
getActiveNetworkInfo()61     NetworkInfo getActiveNetworkInfo();
getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked)62     NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
63     @UnsupportedAppUsage(maxTargetSdk = 28)
getNetworkInfo(int networkType)64     NetworkInfo getNetworkInfo(int networkType);
getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked)65     NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked);
66     @UnsupportedAppUsage
getAllNetworkInfo()67     NetworkInfo[] getAllNetworkInfo();
getNetworkForType(int networkType)68     Network getNetworkForType(int networkType);
getAllNetworks()69     Network[] getAllNetworks();
getDefaultNetworkCapabilitiesForUser( int userId, String callingPackageName, String callingAttributionTag)70     NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(
71             int userId, String callingPackageName, String callingAttributionTag);
72 
isNetworkSupported(int networkType)73     boolean isNetworkSupported(int networkType);
74 
75     @UnsupportedAppUsage
getActiveLinkProperties()76     LinkProperties getActiveLinkProperties();
getLinkPropertiesForType(int networkType)77     LinkProperties getLinkPropertiesForType(int networkType);
getLinkProperties(in Network network)78     LinkProperties getLinkProperties(in Network network);
getRedactedLinkPropertiesForPackage(in LinkProperties lp, int uid, String packageName, String callingAttributionTag)79     LinkProperties getRedactedLinkPropertiesForPackage(in LinkProperties lp, int uid,
80             String packageName, String callingAttributionTag);
81 
getNetworkCapabilities(in Network network, String callingPackageName, String callingAttributionTag)82     NetworkCapabilities getNetworkCapabilities(in Network network, String callingPackageName,
83             String callingAttributionTag);
84 
getRedactedNetworkCapabilitiesForPackage(in NetworkCapabilities nc, int uid, String callingPackageName, String callingAttributionTag)85     NetworkCapabilities getRedactedNetworkCapabilitiesForPackage(in NetworkCapabilities nc, int uid,
86             String callingPackageName, String callingAttributionTag);
87 
88     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
getAllNetworkState()89     NetworkState[] getAllNetworkState();
90 
getAllNetworkStateSnapshots()91     List<NetworkStateSnapshot> getAllNetworkStateSnapshots();
92 
isActiveNetworkMetered()93     boolean isActiveNetworkMetered();
94 
requestRouteToHostAddress(int networkType, in byte[] hostAddress, String callingPackageName, String callingAttributionTag)95     boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress,
96             String callingPackageName, String callingAttributionTag);
97 
98     @UnsupportedAppUsage(maxTargetSdk = 29,
99             publicAlternatives = "Use {@code TetheringManager#getLastTetherError} as alternative")
getLastTetherError(String iface)100     int getLastTetherError(String iface);
101 
102     @UnsupportedAppUsage(maxTargetSdk = 29,
103             publicAlternatives = "Use {@code TetheringManager#getTetherableIfaces} as alternative")
getTetherableIfaces()104     String[] getTetherableIfaces();
105 
106     @UnsupportedAppUsage(maxTargetSdk = 29,
107             publicAlternatives = "Use {@code TetheringManager#getTetheredIfaces} as alternative")
getTetheredIfaces()108     String[] getTetheredIfaces();
109 
110     @UnsupportedAppUsage(maxTargetSdk = 29,
111             publicAlternatives = "Use {@code TetheringManager#getTetheringErroredIfaces} "
112             + "as Alternative")
getTetheringErroredIfaces()113     String[] getTetheringErroredIfaces();
114 
115     @UnsupportedAppUsage(maxTargetSdk = 29,
116             publicAlternatives = "Use {@code TetheringManager#getTetherableUsbRegexs} as alternative")
getTetherableUsbRegexs()117     String[] getTetherableUsbRegexs();
118 
119     @UnsupportedAppUsage(maxTargetSdk = 29,
120             publicAlternatives = "Use {@code TetheringManager#getTetherableWifiRegexs} as alternative")
getTetherableWifiRegexs()121     String[] getTetherableWifiRegexs();
122 
123     @UnsupportedAppUsage(maxTargetSdk = 28)
reportInetCondition(int networkType, int percentage)124     void reportInetCondition(int networkType, int percentage);
125 
reportNetworkConnectivity(in Network network, boolean hasConnectivity)126     void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
127 
getGlobalProxy()128     ProxyInfo getGlobalProxy();
129 
setGlobalProxy(in ProxyInfo p)130     void setGlobalProxy(in ProxyInfo p);
131 
getProxyForNetwork(in Network nework)132     ProxyInfo getProxyForNetwork(in Network nework);
133 
setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges)134     void setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges);
setLegacyLockdownVpnEnabled(boolean enabled)135     void setLegacyLockdownVpnEnabled(boolean enabled);
136 
setProvisioningNotificationVisible(boolean visible, int networkType, in String action)137     void setProvisioningNotificationVisible(boolean visible, int networkType, in String action);
138 
setAirplaneMode(boolean enable)139     void setAirplaneMode(boolean enable);
140 
requestBandwidthUpdate(in Network network)141     boolean requestBandwidthUpdate(in Network network);
142 
registerNetworkProvider(in Messenger messenger, in String name)143     int registerNetworkProvider(in Messenger messenger, in String name);
unregisterNetworkProvider(in Messenger messenger)144     void unregisterNetworkProvider(in Messenger messenger);
145 
declareNetworkRequestUnfulfillable(in NetworkRequest request)146     void declareNetworkRequestUnfulfillable(in NetworkRequest request);
147 
registerNetworkAgent(in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp, in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config, in int factorySerialNumber)148     Network registerNetworkAgent(in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp,
149             in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config,
150             in int factorySerialNumber);
151 
requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType, in Messenger messenger, int timeoutSec, in IBinder binder, int legacy, int callbackFlags, String callingPackageName, String callingAttributionTag)152     NetworkRequest requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType,
153             in Messenger messenger, int timeoutSec, in IBinder binder, int legacy,
154             int callbackFlags, String callingPackageName, String callingAttributionTag);
155 
pendingRequestForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation, String callingPackageName, String callingAttributionTag)156     NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
157             in PendingIntent operation, String callingPackageName, String callingAttributionTag);
158 
releasePendingNetworkRequest(in PendingIntent operation)159     void releasePendingNetworkRequest(in PendingIntent operation);
160 
listenForNetwork(in NetworkCapabilities networkCapabilities, in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName, String callingAttributionTag)161     NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
162             in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName,
163             String callingAttributionTag);
164 
pendingListenForNetwork(in NetworkCapabilities networkCapabilities, in PendingIntent operation, String callingPackageName, String callingAttributionTag)165     void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
166             in PendingIntent operation, String callingPackageName,
167             String callingAttributionTag);
168 
releaseNetworkRequest(in NetworkRequest networkRequest)169     void releaseNetworkRequest(in NetworkRequest networkRequest);
170 
setAcceptUnvalidated(in Network network, boolean accept, boolean always)171     void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
setAcceptPartialConnectivity(in Network network, boolean accept, boolean always)172     void setAcceptPartialConnectivity(in Network network, boolean accept, boolean always);
setAvoidUnvalidated(in Network network)173     void setAvoidUnvalidated(in Network network);
startCaptivePortalApp(in Network network)174     void startCaptivePortalApp(in Network network);
startCaptivePortalAppInternal(in Network network, in Bundle appExtras)175     void startCaptivePortalAppInternal(in Network network, in Bundle appExtras);
176 
shouldAvoidBadWifi()177     boolean shouldAvoidBadWifi();
getMultipathPreference(in Network Network)178     int getMultipathPreference(in Network Network);
179 
getDefaultRequest()180     NetworkRequest getDefaultRequest();
181 
getRestoreDefaultNetworkDelay(int networkType)182     int getRestoreDefaultNetworkDelay(int networkType);
183 
factoryReset()184     void factoryReset();
185 
startNattKeepalive(in Network network, int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr)186     void startNattKeepalive(in Network network, int intervalSeconds,
187             in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr);
188 
startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId, int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr, String dstAddr)189     void startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId,
190             int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr,
191             String dstAddr);
192 
startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds, in ISocketKeepaliveCallback cb)193     void startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds,
194             in ISocketKeepaliveCallback cb);
195 
stopKeepalive(in Network network, int slot)196     void stopKeepalive(in Network network, int slot);
197 
getCaptivePortalServerUrl()198     String getCaptivePortalServerUrl();
199 
getNetworkWatchlistConfigHash()200     byte[] getNetworkWatchlistConfigHash();
201 
getConnectionOwnerUid(in ConnectionInfo connectionInfo)202     int getConnectionOwnerUid(in ConnectionInfo connectionInfo);
203 
registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback, in NetworkRequest request, String callingPackageName)204     void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
205             in NetworkRequest request, String callingPackageName);
unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback)206     void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);
207 
startOrGetTestNetworkService()208     IBinder startOrGetTestNetworkService();
209 
simulateDataStall(int detectionMethod, long timestampMillis, in Network network, in PersistableBundle extras)210     void simulateDataStall(int detectionMethod, long timestampMillis, in Network network,
211                 in PersistableBundle extras);
212 
systemReady()213     void systemReady();
214 
registerNetworkActivityListener(in INetworkActivityListener l)215     void registerNetworkActivityListener(in INetworkActivityListener l);
216 
unregisterNetworkActivityListener(in INetworkActivityListener l)217     void unregisterNetworkActivityListener(in INetworkActivityListener l);
218 
isDefaultNetworkActive()219     boolean isDefaultNetworkActive();
220 
registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback)221     void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
unregisterQosCallback(in IQosCallback callback)222     void unregisterQosCallback(in IQosCallback callback);
223 
setOemNetworkPreference(in OemNetworkPreferences preference, in IOnCompleteListener listener)224     void setOemNetworkPreference(in OemNetworkPreferences preference,
225             in IOnCompleteListener listener);
226 
setProfileNetworkPreferences(in UserHandle profile, in List<ProfileNetworkPreference> preferences, in IOnCompleteListener listener)227     void setProfileNetworkPreferences(in UserHandle profile,
228             in List<ProfileNetworkPreference>  preferences,
229             in IOnCompleteListener listener);
230 
getRestrictBackgroundStatusByCaller()231     int getRestrictBackgroundStatusByCaller();
232 
offerNetwork(int providerId, in NetworkScore score, in NetworkCapabilities caps, in INetworkOfferCallback callback)233     void offerNetwork(int providerId, in NetworkScore score,
234             in NetworkCapabilities caps, in INetworkOfferCallback callback);
unofferNetwork(in INetworkOfferCallback callback)235     void unofferNetwork(in INetworkOfferCallback callback);
236 
setTestAllowBadWifiUntil(long timeMs)237     void setTestAllowBadWifiUntil(long timeMs);
238 
updateMeteredNetworkAllowList(int uid, boolean add)239     void updateMeteredNetworkAllowList(int uid, boolean add);
240 
updateMeteredNetworkDenyList(int uid, boolean add)241     void updateMeteredNetworkDenyList(int uid, boolean add);
242 
setUidFirewallRule(int chain, int uid, int rule)243     void setUidFirewallRule(int chain, int uid, int rule);
244 
setFirewallChainEnabled(int chain, boolean enable)245     void setFirewallChainEnabled(int chain, boolean enable);
246 
replaceFirewallChain(int chain, in int[] uids)247     void replaceFirewallChain(int chain, in int[] uids);
248 }
249