blob: a7cb618f97900a4e0229f0751fa81d18a751f1e7 [file] [log] [blame]
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +09001/**
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
17package android.net;
18
19import android.app.PendingIntent;
20import android.net.ConnectionInfo;
21import android.net.ConnectivityDiagnosticsManager;
22import android.net.IConnectivityDiagnosticsCallback;
Remi NGUYEN VAN43dea282021-02-19 12:53:54 +090023import android.net.INetworkAgent;
Chalard Jeanad565e22021-02-25 17:23:40 +090024import android.net.IOnCompleteListener;
Chiachang Wangcea06a62021-02-04 17:29:59 +080025import android.net.INetworkActivityListener;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090026import android.net.IQosCallback;
27import android.net.ISocketKeepaliveCallback;
28import android.net.LinkProperties;
29import android.net.Network;
30import android.net.NetworkAgentConfig;
31import android.net.NetworkCapabilities;
32import android.net.NetworkInfo;
33import android.net.NetworkRequest;
Chalard Jeand6372722020-12-21 18:36:52 +090034import android.net.NetworkScore;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090035import android.net.NetworkState;
junyulaib1211372021-03-03 12:09:05 +080036import android.net.NetworkStateSnapshot;
James Mattis452c6ff2021-01-01 14:13:35 -080037import android.net.OemNetworkPreferences;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090038import android.net.ProxyInfo;
39import android.net.UidRange;
40import android.net.QosSocketInfo;
41import android.os.Bundle;
42import android.os.IBinder;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090043import android.os.Messenger;
44import android.os.ParcelFileDescriptor;
45import android.os.PersistableBundle;
46import android.os.ResultReceiver;
Chalard Jeanad565e22021-02-25 17:23:40 +090047import android.os.UserHandle;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090048
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090049/**
50 * Interface that answers queries about, and allows changing, the
51 * state of network connectivity.
52 */
53/** {@hide} */
54interface IConnectivityManager
55{
56 Network getActiveNetwork();
57 Network getActiveNetworkForUid(int uid, boolean ignoreBlocked);
58 @UnsupportedAppUsage
59 NetworkInfo getActiveNetworkInfo();
60 NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
61 @UnsupportedAppUsage(maxTargetSdk = 28)
62 NetworkInfo getNetworkInfo(int networkType);
63 NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked);
64 @UnsupportedAppUsage
65 NetworkInfo[] getAllNetworkInfo();
66 Network getNetworkForType(int networkType);
67 Network[] getAllNetworks();
68 NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(
Roshan Piusa8a477b2020-12-17 14:53:09 -080069 int userId, String callingPackageName, String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090070
71 boolean isNetworkSupported(int networkType);
72
73 @UnsupportedAppUsage
74 LinkProperties getActiveLinkProperties();
75 LinkProperties getLinkPropertiesForType(int networkType);
76 LinkProperties getLinkProperties(in Network network);
77
Roshan Piusa8a477b2020-12-17 14:53:09 -080078 NetworkCapabilities getNetworkCapabilities(in Network network, String callingPackageName,
79 String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090080
81 @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
82 NetworkState[] getAllNetworkState();
83
Aaron Huangda103b32021-04-17 13:46:25 +080084 List<NetworkStateSnapshot> getAllNetworkStateSnapshots();
junyulaib1211372021-03-03 12:09:05 +080085
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090086 boolean isActiveNetworkMetered();
87
88 boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress,
89 String callingPackageName, String callingAttributionTag);
90
91 @UnsupportedAppUsage(maxTargetSdk = 29,
92 publicAlternatives = "Use {@code TetheringManager#getLastTetherError} as alternative")
93 int getLastTetherError(String iface);
94
95 @UnsupportedAppUsage(maxTargetSdk = 29,
96 publicAlternatives = "Use {@code TetheringManager#getTetherableIfaces} as alternative")
97 String[] getTetherableIfaces();
98
99 @UnsupportedAppUsage(maxTargetSdk = 29,
100 publicAlternatives = "Use {@code TetheringManager#getTetheredIfaces} as alternative")
101 String[] getTetheredIfaces();
102
103 @UnsupportedAppUsage(maxTargetSdk = 29,
104 publicAlternatives = "Use {@code TetheringManager#getTetheringErroredIfaces} "
105 + "as Alternative")
106 String[] getTetheringErroredIfaces();
107
108 @UnsupportedAppUsage(maxTargetSdk = 29,
109 publicAlternatives = "Use {@code TetheringManager#getTetherableUsbRegexs} as alternative")
110 String[] getTetherableUsbRegexs();
111
112 @UnsupportedAppUsage(maxTargetSdk = 29,
113 publicAlternatives = "Use {@code TetheringManager#getTetherableWifiRegexs} as alternative")
114 String[] getTetherableWifiRegexs();
115
116 @UnsupportedAppUsage(maxTargetSdk = 28)
117 void reportInetCondition(int networkType, int percentage);
118
119 void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
120
121 ProxyInfo getGlobalProxy();
122
123 void setGlobalProxy(in ProxyInfo p);
124
125 ProxyInfo getProxyForNetwork(in Network nework);
126
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900127 void setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges);
Lorenzo Colittic71cff82021-01-15 01:29:01 +0900128 void setLegacyLockdownVpnEnabled(boolean enabled);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900129
130 void setProvisioningNotificationVisible(boolean visible, int networkType, in String action);
131
132 void setAirplaneMode(boolean enable);
133
134 boolean requestBandwidthUpdate(in Network network);
135
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900136 int registerNetworkProvider(in Messenger messenger, in String name);
137 void unregisterNetworkProvider(in Messenger messenger);
138
139 void declareNetworkRequestUnfulfillable(in NetworkRequest request);
140
141 Network registerNetworkAgent(in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp,
Chalard Jeand6372722020-12-21 18:36:52 +0900142 in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config,
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900143 in int factorySerialNumber);
144
Lorenzo Colitti5f26b192021-03-12 22:48:07 +0900145 NetworkRequest requestNetwork(int uid, in NetworkCapabilities networkCapabilities, int reqType,
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900146 in Messenger messenger, int timeoutSec, in IBinder binder, int legacy,
Roshan Piuse08bc182020-12-22 15:10:42 -0800147 int callbackFlags, String callingPackageName, String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900148
149 NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
150 in PendingIntent operation, String callingPackageName, String callingAttributionTag);
151
152 void releasePendingNetworkRequest(in PendingIntent operation);
153
154 NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
Roshan Piuse08bc182020-12-22 15:10:42 -0800155 in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName,
Roshan Piusa8a477b2020-12-17 14:53:09 -0800156 String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900157
158 void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
Roshan Piusa8a477b2020-12-17 14:53:09 -0800159 in PendingIntent operation, String callingPackageName,
160 String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900161
162 void releaseNetworkRequest(in NetworkRequest networkRequest);
163
164 void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
165 void setAcceptPartialConnectivity(in Network network, boolean accept, boolean always);
166 void setAvoidUnvalidated(in Network network);
167 void startCaptivePortalApp(in Network network);
168 void startCaptivePortalAppInternal(in Network network, in Bundle appExtras);
169
170 boolean shouldAvoidBadWifi();
171 int getMultipathPreference(in Network Network);
172
173 NetworkRequest getDefaultRequest();
174
175 int getRestoreDefaultNetworkDelay(int networkType);
176
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900177 void factoryReset();
178
179 void startNattKeepalive(in Network network, int intervalSeconds,
180 in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr);
181
182 void startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId,
183 int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr,
184 String dstAddr);
185
186 void startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds,
187 in ISocketKeepaliveCallback cb);
188
189 void stopKeepalive(in Network network, int slot);
190
191 String getCaptivePortalServerUrl();
192
193 byte[] getNetworkWatchlistConfigHash();
194
195 int getConnectionOwnerUid(in ConnectionInfo connectionInfo);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900196
197 void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
198 in NetworkRequest request, String callingPackageName);
199 void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);
200
201 IBinder startOrGetTestNetworkService();
202
203 void simulateDataStall(int detectionMethod, long timestampMillis, in Network network,
204 in PersistableBundle extras);
205
206 void systemReady();
207
208 void registerNetworkActivityListener(in INetworkActivityListener l);
209
210 void unregisterNetworkActivityListener(in INetworkActivityListener l);
211
212 boolean isDefaultNetworkActive();
213
214 void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
215 void unregisterQosCallback(in IQosCallback callback);
James Mattis452c6ff2021-01-01 14:13:35 -0800216
James Mattis12aeab82021-01-10 14:24:24 -0800217 void setOemNetworkPreference(in OemNetworkPreferences preference,
Chalard Jean0a4aefc2021-03-03 16:37:13 +0900218 in IOnCompleteListener listener);
Chalard Jeanad565e22021-02-25 17:23:40 +0900219
220 void setProfileNetworkPreference(in UserHandle profile, int preference,
221 in IOnCompleteListener listener);
Remi NGUYEN VANe62e7ff2021-03-18 14:23:12 +0900222
223 int getRestrictBackgroundStatusByCaller();
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900224}