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.wifi; 18 19 import android.net.wifi.hotspot2.OsuProvider; 20 import android.net.wifi.hotspot2.PasspointConfiguration; 21 import android.net.wifi.hotspot2.IProvisioningCallback; 22 23 import android.net.DhcpInfo; 24 import android.net.Network; 25 import android.net.wifi.CoexUnsafeChannel; 26 import android.net.wifi.IActionListener; 27 import android.net.wifi.ICoexCallback; 28 import android.net.wifi.IDppCallback; 29 import android.net.wifi.ILocalOnlyHotspotCallback; 30 import android.net.wifi.INetworkRequestMatchCallback; 31 import android.net.wifi.IOnWifiActivityEnergyInfoListener; 32 import android.net.wifi.IOnWifiUsabilityStatsListener; 33 import android.net.wifi.IScanResultsCallback; 34 import android.net.wifi.ISoftApCallback; 35 import android.net.wifi.ISubsystemRestartCallback; 36 import android.net.wifi.ISuggestionConnectionStatusListener; 37 import android.net.wifi.ISuggestionUserApprovalStatusListener; 38 import android.net.wifi.ITrafficStateCallback; 39 import android.net.wifi.IWifiConnectedNetworkScorer; 40 import android.net.wifi.IWifiVerboseLoggingStatusChangedListener; 41 import android.net.wifi.ScanResult; 42 import android.net.wifi.SoftApConfiguration; 43 import android.net.wifi.WifiAvailableChannel; 44 import android.net.wifi.WifiConfiguration; 45 import android.net.wifi.WifiInfo; 46 import android.net.wifi.WifiManager; 47 import android.net.wifi.WifiNetworkSuggestion; 48 49 import android.os.Messenger; 50 import android.os.ResultReceiver; 51 import android.os.WorkSource; 52 53 import com.android.modules.utils.ParceledListSlice; 54 55 /** 56 * Interface that allows controlling and querying Wi-Fi connectivity. 57 * 58 * {@hide} 59 */ 60 interface IWifiManager 61 { getSupportedFeatures()62 long getSupportedFeatures(); 63 getWifiActivityEnergyInfoAsync(in IOnWifiActivityEnergyInfoListener listener)64 oneway void getWifiActivityEnergyInfoAsync(in IOnWifiActivityEnergyInfoListener listener); 65 getConfiguredNetworks(String packageName, String featureId, boolean callerNetworksOnly)66 ParceledListSlice getConfiguredNetworks(String packageName, String featureId, boolean callerNetworksOnly); 67 getPrivilegedConfiguredNetworks(String packageName, String featureId)68 ParceledListSlice getPrivilegedConfiguredNetworks(String packageName, String featureId); 69 getAllMatchingFqdnsForScanResults(in List<ScanResult> scanResult)70 Map getAllMatchingFqdnsForScanResults(in List<ScanResult> scanResult); 71 getMatchingOsuProviders(in List<ScanResult> scanResult)72 Map getMatchingOsuProviders(in List<ScanResult> scanResult); 73 getMatchingPasspointConfigsForOsuProviders(in List<OsuProvider> osuProviders)74 Map getMatchingPasspointConfigsForOsuProviders(in List<OsuProvider> osuProviders); 75 addOrUpdateNetwork(in WifiConfiguration config, String packageName)76 int addOrUpdateNetwork(in WifiConfiguration config, String packageName); 77 addOrUpdateNetworkPrivileged(in WifiConfiguration config, String packageName)78 WifiManager.AddNetworkResult addOrUpdateNetworkPrivileged(in WifiConfiguration config, String packageName); 79 addOrUpdatePasspointConfiguration(in PasspointConfiguration config, String packageName)80 boolean addOrUpdatePasspointConfiguration(in PasspointConfiguration config, String packageName); 81 removePasspointConfiguration(in String fqdn, String packageName)82 boolean removePasspointConfiguration(in String fqdn, String packageName); 83 getPasspointConfigurations(in String packageName)84 List<PasspointConfiguration> getPasspointConfigurations(in String packageName); 85 getWifiConfigsForPasspointProfiles(in List<String> fqdnList)86 List<WifiConfiguration> getWifiConfigsForPasspointProfiles(in List<String> fqdnList); 87 queryPasspointIcon(long bssid, String fileName)88 void queryPasspointIcon(long bssid, String fileName); 89 matchProviderWithCurrentNetwork(String fqdn)90 int matchProviderWithCurrentNetwork(String fqdn); 91 removeNetwork(int netId, String packageName)92 boolean removeNetwork(int netId, String packageName); 93 removeNonCallerConfiguredNetworks(String packageName)94 boolean removeNonCallerConfiguredNetworks(String packageName); 95 enableNetwork(int netId, boolean disableOthers, String packageName)96 boolean enableNetwork(int netId, boolean disableOthers, String packageName); 97 disableNetwork(int netId, String packageName)98 boolean disableNetwork(int netId, String packageName); 99 allowAutojoinGlobal(boolean choice)100 void allowAutojoinGlobal(boolean choice); 101 allowAutojoin(int netId, boolean choice)102 void allowAutojoin(int netId, boolean choice); 103 allowAutojoinPasspoint(String fqdn, boolean enableAutoJoin)104 void allowAutojoinPasspoint(String fqdn, boolean enableAutoJoin); 105 setMacRandomizationSettingPasspointEnabled(String fqdn, boolean enable)106 void setMacRandomizationSettingPasspointEnabled(String fqdn, boolean enable); 107 setPasspointMeteredOverride(String fqdn, int meteredOverride)108 void setPasspointMeteredOverride(String fqdn, int meteredOverride); 109 startScan(String packageName, String featureId)110 boolean startScan(String packageName, String featureId); 111 getScanResults(String callingPackage, String callingFeatureId)112 List<ScanResult> getScanResults(String callingPackage, String callingFeatureId); 113 disconnect(String packageName)114 boolean disconnect(String packageName); 115 reconnect(String packageName)116 boolean reconnect(String packageName); 117 reassociate(String packageName)118 boolean reassociate(String packageName); 119 getConnectionInfo(String callingPackage, String callingFeatureId)120 WifiInfo getConnectionInfo(String callingPackage, String callingFeatureId); 121 setWifiEnabled(String packageName, boolean enable)122 boolean setWifiEnabled(String packageName, boolean enable); 123 getWifiEnabledState()124 int getWifiEnabledState(); 125 getCountryCode()126 String getCountryCode(); 127 setOverrideCountryCode(String country)128 void setOverrideCountryCode(String country); 129 clearOverrideCountryCode()130 void clearOverrideCountryCode(); 131 setDefaultCountryCode(String country)132 void setDefaultCountryCode(String country); 133 is24GHzBandSupported()134 boolean is24GHzBandSupported(); 135 is5GHzBandSupported()136 boolean is5GHzBandSupported(); 137 is6GHzBandSupported()138 boolean is6GHzBandSupported(); 139 is60GHzBandSupported()140 boolean is60GHzBandSupported(); 141 isWifiStandardSupported(int standard)142 boolean isWifiStandardSupported(int standard); 143 getDhcpInfo(String packageName)144 DhcpInfo getDhcpInfo(String packageName); 145 setScanAlwaysAvailable(boolean isAvailable, String packageName)146 void setScanAlwaysAvailable(boolean isAvailable, String packageName); 147 isScanAlwaysAvailable()148 boolean isScanAlwaysAvailable(); 149 acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws)150 boolean acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws); 151 updateWifiLockWorkSource(IBinder lock, in WorkSource ws)152 void updateWifiLockWorkSource(IBinder lock, in WorkSource ws); 153 releaseWifiLock(IBinder lock)154 boolean releaseWifiLock(IBinder lock); 155 initializeMulticastFiltering()156 void initializeMulticastFiltering(); 157 isMulticastEnabled()158 boolean isMulticastEnabled(); 159 acquireMulticastLock(IBinder binder, String tag)160 void acquireMulticastLock(IBinder binder, String tag); 161 releaseMulticastLock(String tag)162 void releaseMulticastLock(String tag); 163 updateInterfaceIpState(String ifaceName, int mode)164 void updateInterfaceIpState(String ifaceName, int mode); 165 isDefaultCoexAlgorithmEnabled()166 boolean isDefaultCoexAlgorithmEnabled(); 167 setCoexUnsafeChannels(in List<CoexUnsafeChannel> unsafeChannels, int mandatoryRestrictions)168 void setCoexUnsafeChannels(in List<CoexUnsafeChannel> unsafeChannels, int mandatoryRestrictions); 169 registerCoexCallback(in ICoexCallback callback)170 void registerCoexCallback(in ICoexCallback callback); 171 unregisterCoexCallback(in ICoexCallback callback)172 void unregisterCoexCallback(in ICoexCallback callback); 173 startSoftAp(in WifiConfiguration wifiConfig, String packageName)174 boolean startSoftAp(in WifiConfiguration wifiConfig, String packageName); 175 startTetheredHotspot(in SoftApConfiguration softApConfig, String packageName)176 boolean startTetheredHotspot(in SoftApConfiguration softApConfig, String packageName); 177 stopSoftAp()178 boolean stopSoftAp(); 179 startLocalOnlyHotspot(in ILocalOnlyHotspotCallback callback, String packageName, String featureId, in SoftApConfiguration customConfig)180 int startLocalOnlyHotspot(in ILocalOnlyHotspotCallback callback, String packageName, 181 String featureId, in SoftApConfiguration customConfig); 182 stopLocalOnlyHotspot()183 void stopLocalOnlyHotspot(); 184 startWatchLocalOnlyHotspot(in ILocalOnlyHotspotCallback callback)185 void startWatchLocalOnlyHotspot(in ILocalOnlyHotspotCallback callback); 186 stopWatchLocalOnlyHotspot()187 void stopWatchLocalOnlyHotspot(); 188 189 @UnsupportedAppUsage getWifiApEnabledState()190 int getWifiApEnabledState(); 191 192 @UnsupportedAppUsage getWifiApConfiguration()193 WifiConfiguration getWifiApConfiguration(); 194 getSoftApConfiguration()195 SoftApConfiguration getSoftApConfiguration(); 196 setWifiApConfiguration(in WifiConfiguration wifiConfig, String packageName)197 boolean setWifiApConfiguration(in WifiConfiguration wifiConfig, String packageName); 198 setSoftApConfiguration(in SoftApConfiguration softApConfig, String packageName)199 boolean setSoftApConfiguration(in SoftApConfiguration softApConfig, String packageName); 200 notifyUserOfApBandConversion(String packageName)201 void notifyUserOfApBandConversion(String packageName); 202 enableTdls(String remoteIPAddress, boolean enable)203 void enableTdls(String remoteIPAddress, boolean enable); 204 enableTdlsWithMacAddress(String remoteMacAddress, boolean enable)205 void enableTdlsWithMacAddress(String remoteMacAddress, boolean enable); 206 getCurrentNetworkWpsNfcConfigurationToken()207 String getCurrentNetworkWpsNfcConfigurationToken(); 208 enableVerboseLogging(int verbose)209 void enableVerboseLogging(int verbose); 210 getVerboseLoggingLevel()211 int getVerboseLoggingLevel(); 212 disableEphemeralNetwork(String SSID, String packageName)213 void disableEphemeralNetwork(String SSID, String packageName); 214 factoryReset(String packageName)215 void factoryReset(String packageName); 216 217 @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553) getCurrentNetwork()218 Network getCurrentNetwork(); 219 retrieveBackupData()220 byte[] retrieveBackupData(); 221 restoreBackupData(in byte[] data)222 void restoreBackupData(in byte[] data); 223 retrieveSoftApBackupData()224 byte[] retrieveSoftApBackupData(); 225 restoreSoftApBackupData(in byte[] data)226 SoftApConfiguration restoreSoftApBackupData(in byte[] data); 227 restoreSupplicantBackupData(in byte[] supplicantData, in byte[] ipConfigData)228 void restoreSupplicantBackupData(in byte[] supplicantData, in byte[] ipConfigData); 229 startSubscriptionProvisioning(in OsuProvider provider, in IProvisioningCallback callback)230 void startSubscriptionProvisioning(in OsuProvider provider, in IProvisioningCallback callback); 231 registerSoftApCallback(in ISoftApCallback callback)232 void registerSoftApCallback(in ISoftApCallback callback); 233 unregisterSoftApCallback(in ISoftApCallback callback)234 void unregisterSoftApCallback(in ISoftApCallback callback); 235 addWifiVerboseLoggingStatusChangedListener(in IWifiVerboseLoggingStatusChangedListener listener)236 void addWifiVerboseLoggingStatusChangedListener(in IWifiVerboseLoggingStatusChangedListener listener); 237 removeWifiVerboseLoggingStatusChangedListener(in IWifiVerboseLoggingStatusChangedListener listener)238 void removeWifiVerboseLoggingStatusChangedListener(in IWifiVerboseLoggingStatusChangedListener listener); 239 addOnWifiUsabilityStatsListener(in IOnWifiUsabilityStatsListener listener)240 void addOnWifiUsabilityStatsListener(in IOnWifiUsabilityStatsListener listener); 241 removeOnWifiUsabilityStatsListener(in IOnWifiUsabilityStatsListener listener)242 void removeOnWifiUsabilityStatsListener(in IOnWifiUsabilityStatsListener listener); 243 registerTrafficStateCallback(in ITrafficStateCallback callback)244 void registerTrafficStateCallback(in ITrafficStateCallback callback); 245 unregisterTrafficStateCallback(in ITrafficStateCallback callback)246 void unregisterTrafficStateCallback(in ITrafficStateCallback callback); 247 registerNetworkRequestMatchCallback(in INetworkRequestMatchCallback callback)248 void registerNetworkRequestMatchCallback(in INetworkRequestMatchCallback callback); 249 unregisterNetworkRequestMatchCallback(in INetworkRequestMatchCallback callback)250 void unregisterNetworkRequestMatchCallback(in INetworkRequestMatchCallback callback); 251 addNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName, in String featureId)252 int addNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName, 253 in String featureId); 254 removeNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName)255 int removeNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName); 256 getNetworkSuggestions(in String packageName)257 List<WifiNetworkSuggestion> getNetworkSuggestions(in String packageName); 258 getFactoryMacAddresses()259 String[] getFactoryMacAddresses(); 260 setDeviceMobilityState(int state)261 void setDeviceMobilityState(int state); 262 startDppAsConfiguratorInitiator(in IBinder binder, in String packageName, in String enrolleeUri, int selectedNetworkId, int netRole, in IDppCallback callback)263 void startDppAsConfiguratorInitiator(in IBinder binder, in String packageName, 264 in String enrolleeUri, int selectedNetworkId, int netRole, in IDppCallback callback); 265 startDppAsEnrolleeInitiator(in IBinder binder, in String configuratorUri, in IDppCallback callback)266 void startDppAsEnrolleeInitiator(in IBinder binder, in String configuratorUri, 267 in IDppCallback callback); 268 startDppAsEnrolleeResponder(in IBinder binder, in String deviceInfo, int curve, in IDppCallback callback)269 void startDppAsEnrolleeResponder(in IBinder binder, in String deviceInfo, int curve, 270 in IDppCallback callback); 271 stopDppSession()272 void stopDppSession(); 273 updateWifiUsabilityScore(int seqNum, int score, int predictionHorizonSec)274 void updateWifiUsabilityScore(int seqNum, int score, int predictionHorizonSec); 275 connect(in WifiConfiguration config, int netId, in IActionListener listener)276 oneway void connect(in WifiConfiguration config, int netId, in IActionListener listener); 277 save(in WifiConfiguration config, in IActionListener listener)278 oneway void save(in WifiConfiguration config, in IActionListener listener); 279 forget(int netId, in IActionListener listener)280 oneway void forget(int netId, in IActionListener listener); 281 registerScanResultsCallback(in IScanResultsCallback callback)282 void registerScanResultsCallback(in IScanResultsCallback callback); 283 unregisterScanResultsCallback(in IScanResultsCallback callback)284 void unregisterScanResultsCallback(in IScanResultsCallback callback); 285 registerSuggestionConnectionStatusListener(in ISuggestionConnectionStatusListener listener, String packageName, String featureId)286 void registerSuggestionConnectionStatusListener(in ISuggestionConnectionStatusListener listener, String packageName, String featureId); 287 unregisterSuggestionConnectionStatusListener(in ISuggestionConnectionStatusListener listener, String packageName)288 void unregisterSuggestionConnectionStatusListener(in ISuggestionConnectionStatusListener listener, String packageName); 289 calculateSignalLevel(int rssi)290 int calculateSignalLevel(int rssi); 291 getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(in List<ScanResult> scanResults)292 List<WifiConfiguration> getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(in List<ScanResult> scanResults); 293 setWifiConnectedNetworkScorer(in IBinder binder, in IWifiConnectedNetworkScorer scorer)294 boolean setWifiConnectedNetworkScorer(in IBinder binder, in IWifiConnectedNetworkScorer scorer); 295 clearWifiConnectedNetworkScorer()296 void clearWifiConnectedNetworkScorer(); 297 298 /** 299 * Return the Map of {@link WifiNetworkSuggestion} and the list of <ScanResult> 300 */ getMatchingScanResults(in List<WifiNetworkSuggestion> networkSuggestions, in List<ScanResult> scanResults, String callingPackage, String callingFeatureId)301 Map getMatchingScanResults(in List<WifiNetworkSuggestion> networkSuggestions, in List<ScanResult> scanResults, String callingPackage, String callingFeatureId); 302 setScanThrottleEnabled(boolean enable)303 void setScanThrottleEnabled(boolean enable); 304 isScanThrottleEnabled()305 boolean isScanThrottleEnabled(); 306 getAllMatchingPasspointProfilesForScanResults(in List<ScanResult> scanResult)307 Map getAllMatchingPasspointProfilesForScanResults(in List<ScanResult> scanResult); 308 setAutoWakeupEnabled(boolean enable)309 void setAutoWakeupEnabled(boolean enable); 310 isAutoWakeupEnabled()311 boolean isAutoWakeupEnabled(); 312 startRestrictingAutoJoinToSubscriptionId(int subId)313 void startRestrictingAutoJoinToSubscriptionId(int subId); 314 stopRestrictingAutoJoinToSubscriptionId()315 void stopRestrictingAutoJoinToSubscriptionId(); 316 setCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged, boolean enabled)317 void setCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged, boolean enabled); 318 isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged)319 boolean isCarrierNetworkOffloadEnabled(int subscriptionId, boolean merged); 320 registerSubsystemRestartCallback(in ISubsystemRestartCallback callback)321 void registerSubsystemRestartCallback(in ISubsystemRestartCallback callback); 322 unregisterSubsystemRestartCallback(in ISubsystemRestartCallback callback)323 void unregisterSubsystemRestartCallback(in ISubsystemRestartCallback callback); 324 restartWifiSubsystem()325 void restartWifiSubsystem(); 326 addSuggestionUserApprovalStatusListener(in ISuggestionUserApprovalStatusListener listener, String packageName)327 void addSuggestionUserApprovalStatusListener(in ISuggestionUserApprovalStatusListener listener, String packageName); 328 removeSuggestionUserApprovalStatusListener(in ISuggestionUserApprovalStatusListener listener, String packageName)329 void removeSuggestionUserApprovalStatusListener(in ISuggestionUserApprovalStatusListener listener, String packageName); 330 setEmergencyScanRequestInProgress(boolean inProgress)331 void setEmergencyScanRequestInProgress(boolean inProgress); 332 removeAppState(int targetAppUid, String targetApppackageName)333 void removeAppState(int targetAppUid, String targetApppackageName); 334 setWifiScoringEnabled(boolean enabled)335 boolean setWifiScoringEnabled(boolean enabled); 336 flushPasspointAnqpCache(String packageName)337 void flushPasspointAnqpCache(String packageName); 338 getUsableChannels(int band, int mode, int filter)339 List<WifiAvailableChannel> getUsableChannels(int band, int mode, int filter); 340 } 341