blob: 98f3d40c0b072f9c23d83408fdf58a970e3ffd57 [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;
Chalard Jeanad565e22021-02-25 17:23:40 +090023import android.net.IOnCompleteListener;
Chiachang Wangcea06a62021-02-04 17:29:59 +080024import android.net.INetworkActivityListener;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090025import android.net.IQosCallback;
26import android.net.ISocketKeepaliveCallback;
27import android.net.LinkProperties;
28import android.net.Network;
29import android.net.NetworkAgentConfig;
30import android.net.NetworkCapabilities;
31import android.net.NetworkInfo;
32import android.net.NetworkRequest;
Chalard Jeand6372722020-12-21 18:36:52 +090033import android.net.NetworkScore;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090034import android.net.NetworkState;
junyulaib1211372021-03-03 12:09:05 +080035import android.net.NetworkStateSnapshot;
James Mattis452c6ff2021-01-01 14:13:35 -080036import android.net.OemNetworkPreferences;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090037import android.net.ProxyInfo;
38import android.net.UidRange;
39import android.net.QosSocketInfo;
40import android.os.Bundle;
41import android.os.IBinder;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090042import android.os.Messenger;
43import android.os.ParcelFileDescriptor;
44import android.os.PersistableBundle;
45import android.os.ResultReceiver;
Chalard Jeanad565e22021-02-25 17:23:40 +090046import android.os.UserHandle;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090047
48import com.android.connectivity.aidl.INetworkAgent;
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090049
50/**
51 * Interface that answers queries about, and allows changing, the
52 * state of network connectivity.
53 */
54/** {@hide} */
55interface IConnectivityManager
56{
57 Network getActiveNetwork();
58 Network getActiveNetworkForUid(int uid, boolean ignoreBlocked);
59 @UnsupportedAppUsage
60 NetworkInfo getActiveNetworkInfo();
61 NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
62 @UnsupportedAppUsage(maxTargetSdk = 28)
63 NetworkInfo getNetworkInfo(int networkType);
64 NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked);
65 @UnsupportedAppUsage
66 NetworkInfo[] getAllNetworkInfo();
67 Network getNetworkForType(int networkType);
68 Network[] getAllNetworks();
69 NetworkCapabilities[] getDefaultNetworkCapabilitiesForUser(
Roshan Piusa8a477b2020-12-17 14:53:09 -080070 int userId, String callingPackageName, String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090071
72 boolean isNetworkSupported(int networkType);
73
74 @UnsupportedAppUsage
75 LinkProperties getActiveLinkProperties();
76 LinkProperties getLinkPropertiesForType(int networkType);
77 LinkProperties getLinkProperties(in Network network);
78
Roshan Piusa8a477b2020-12-17 14:53:09 -080079 NetworkCapabilities getNetworkCapabilities(in Network network, String callingPackageName,
80 String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090081
82 @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
83 NetworkState[] getAllNetworkState();
84
junyulaib1211372021-03-03 12:09:05 +080085 List<NetworkStateSnapshot> getAllNetworkStateSnapshot();
86
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +090087 boolean isActiveNetworkMetered();
88
89 boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress,
90 String callingPackageName, String callingAttributionTag);
91
92 @UnsupportedAppUsage(maxTargetSdk = 29,
93 publicAlternatives = "Use {@code TetheringManager#getLastTetherError} as alternative")
94 int getLastTetherError(String iface);
95
96 @UnsupportedAppUsage(maxTargetSdk = 29,
97 publicAlternatives = "Use {@code TetheringManager#getTetherableIfaces} as alternative")
98 String[] getTetherableIfaces();
99
100 @UnsupportedAppUsage(maxTargetSdk = 29,
101 publicAlternatives = "Use {@code TetheringManager#getTetheredIfaces} as alternative")
102 String[] getTetheredIfaces();
103
104 @UnsupportedAppUsage(maxTargetSdk = 29,
105 publicAlternatives = "Use {@code TetheringManager#getTetheringErroredIfaces} "
106 + "as Alternative")
107 String[] getTetheringErroredIfaces();
108
109 @UnsupportedAppUsage(maxTargetSdk = 29,
110 publicAlternatives = "Use {@code TetheringManager#getTetherableUsbRegexs} as alternative")
111 String[] getTetherableUsbRegexs();
112
113 @UnsupportedAppUsage(maxTargetSdk = 29,
114 publicAlternatives = "Use {@code TetheringManager#getTetherableWifiRegexs} as alternative")
115 String[] getTetherableWifiRegexs();
116
117 @UnsupportedAppUsage(maxTargetSdk = 28)
118 void reportInetCondition(int networkType, int percentage);
119
120 void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
121
122 ProxyInfo getGlobalProxy();
123
124 void setGlobalProxy(in ProxyInfo p);
125
126 ProxyInfo getProxyForNetwork(in Network nework);
127
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900128 void setRequireVpnForUids(boolean requireVpn, in UidRange[] ranges);
Lorenzo Colittic71cff82021-01-15 01:29:01 +0900129 void setLegacyLockdownVpnEnabled(boolean enabled);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900130
131 void setProvisioningNotificationVisible(boolean visible, int networkType, in String action);
132
133 void setAirplaneMode(boolean enable);
134
135 boolean requestBandwidthUpdate(in Network network);
136
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900137 int registerNetworkProvider(in Messenger messenger, in String name);
138 void unregisterNetworkProvider(in Messenger messenger);
139
140 void declareNetworkRequestUnfulfillable(in NetworkRequest request);
141
142 Network registerNetworkAgent(in INetworkAgent na, in NetworkInfo ni, in LinkProperties lp,
Chalard Jeand6372722020-12-21 18:36:52 +0900143 in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config,
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900144 in int factorySerialNumber);
145
146 NetworkRequest requestNetwork(in NetworkCapabilities networkCapabilities, int reqType,
147 in Messenger messenger, int timeoutSec, in IBinder binder, int legacy,
Roshan Piuse08bc182020-12-22 15:10:42 -0800148 int callbackFlags, String callingPackageName, String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900149
150 NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
151 in PendingIntent operation, String callingPackageName, String callingAttributionTag);
152
153 void releasePendingNetworkRequest(in PendingIntent operation);
154
155 NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
Roshan Piuse08bc182020-12-22 15:10:42 -0800156 in Messenger messenger, in IBinder binder, int callbackFlags, String callingPackageName,
Roshan Piusa8a477b2020-12-17 14:53:09 -0800157 String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900158
159 void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
Roshan Piusa8a477b2020-12-17 14:53:09 -0800160 in PendingIntent operation, String callingPackageName,
161 String callingAttributionTag);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900162
163 void releaseNetworkRequest(in NetworkRequest networkRequest);
164
165 void setAcceptUnvalidated(in Network network, boolean accept, boolean always);
166 void setAcceptPartialConnectivity(in Network network, boolean accept, boolean always);
167 void setAvoidUnvalidated(in Network network);
168 void startCaptivePortalApp(in Network network);
169 void startCaptivePortalAppInternal(in Network network, in Bundle appExtras);
170
171 boolean shouldAvoidBadWifi();
172 int getMultipathPreference(in Network Network);
173
174 NetworkRequest getDefaultRequest();
175
176 int getRestoreDefaultNetworkDelay(int networkType);
177
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900178 void factoryReset();
179
180 void startNattKeepalive(in Network network, int intervalSeconds,
181 in ISocketKeepaliveCallback cb, String srcAddr, int srcPort, String dstAddr);
182
183 void startNattKeepaliveWithFd(in Network network, in ParcelFileDescriptor pfd, int resourceId,
184 int intervalSeconds, in ISocketKeepaliveCallback cb, String srcAddr,
185 String dstAddr);
186
187 void startTcpKeepalive(in Network network, in ParcelFileDescriptor pfd, int intervalSeconds,
188 in ISocketKeepaliveCallback cb);
189
190 void stopKeepalive(in Network network, int slot);
191
192 String getCaptivePortalServerUrl();
193
194 byte[] getNetworkWatchlistConfigHash();
195
196 int getConnectionOwnerUid(in ConnectionInfo connectionInfo);
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900197
198 void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
199 in NetworkRequest request, String callingPackageName);
200 void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);
201
202 IBinder startOrGetTestNetworkService();
203
204 void simulateDataStall(int detectionMethod, long timestampMillis, in Network network,
205 in PersistableBundle extras);
206
207 void systemReady();
208
209 void registerNetworkActivityListener(in INetworkActivityListener l);
210
211 void unregisterNetworkActivityListener(in INetworkActivityListener l);
212
213 boolean isDefaultNetworkActive();
214
215 void registerQosSocketCallback(in QosSocketInfo socketInfo, in IQosCallback callback);
216 void unregisterQosCallback(in IQosCallback callback);
James Mattis452c6ff2021-01-01 14:13:35 -0800217
James Mattis12aeab82021-01-10 14:24:24 -0800218 void setOemNetworkPreference(in OemNetworkPreferences preference,
Chalard Jean0a4aefc2021-03-03 16:37:13 +0900219 in IOnCompleteListener listener);
Chalard Jeanad565e22021-02-25 17:23:40 +0900220
221 void setProfileNetworkPreference(in UserHandle profile, int preference,
222 in IOnCompleteListener listener);
Remi NGUYEN VAN1fdeb502021-03-18 14:23:12 +0900223
224 int getRestrictBackgroundStatusByCaller();
Remi NGUYEN VANfbbccbc2021-01-15 18:08:24 +0900225}