Yuhao Zheng 738803fee6 Add new API to scan a given channel set
Create new (hidden) APIs to scan a specified channel set. This is mainly for
location service for now, as doing frequent full scans (including DFS channel)
kills battery.

This set of new APIs contains:
- API to query available channel list for scanning, and DFS channels are marked
- API to scan a specified channel set

Selective scan results are returned in the same way as normal full scan ones.
In order not to intrude full scan results, BSS_FLUSH is NOT performed before a
selective scan. Therefore, selective scan results may contain results that's not
in the given channel set, and post-filtering may be required for location
service use.

Bug: 12610436
Change-Id: Icced18dd9b54f6dd92c0c2874d31518d56af8163
2014-02-18 15:26:29 -08:00

133 lines
3.2 KiB
Plaintext

/**
* Copyright (c) 2008, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.net.wifi;
import android.net.wifi.BatchedScanResult;
import android.net.wifi.BatchedScanSettings;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.ScanSettings;
import android.net.wifi.WifiChannel;
import android.net.wifi.ScanResult;
import android.net.DhcpInfo;
import android.os.Messenger;
import android.os.WorkSource;
/**
* Interface that allows controlling and querying Wi-Fi connectivity.
*
* {@hide}
*/
interface IWifiManager
{
List<WifiConfiguration> getConfiguredNetworks();
int addOrUpdateNetwork(in WifiConfiguration config);
boolean removeNetwork(int netId);
boolean enableNetwork(int netId, boolean disableOthers);
boolean disableNetwork(int netId);
boolean pingSupplicant();
List<WifiChannel> getChannelList();
void startScan(in ScanSettings requested, in WorkSource ws);
List<ScanResult> getScanResults(String callingPackage);
void disconnect();
void reconnect();
void reassociate();
WifiInfo getConnectionInfo();
boolean setWifiEnabled(boolean enable);
int getWifiEnabledState();
void setCountryCode(String country, boolean persist);
void setFrequencyBand(int band, boolean persist);
int getFrequencyBand();
boolean isDualBandSupported();
boolean saveConfiguration();
DhcpInfo getDhcpInfo();
boolean isScanAlwaysAvailable();
boolean acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws);
void updateWifiLockWorkSource(IBinder lock, in WorkSource ws);
boolean releaseWifiLock(IBinder lock);
void initializeMulticastFiltering();
boolean isMulticastEnabled();
void acquireMulticastLock(IBinder binder, String tag);
void releaseMulticastLock();
void setWifiApEnabled(in WifiConfiguration wifiConfig, boolean enable);
int getWifiApEnabledState();
WifiConfiguration getWifiApConfiguration();
void setWifiApConfiguration(in WifiConfiguration wifiConfig);
void startWifi();
void stopWifi();
void addToBlacklist(String bssid);
void clearBlacklist();
Messenger getWifiServiceMessenger();
Messenger getWifiStateMachineMessenger();
String getConfigFile();
void enableTdls(String remoteIPAddress, boolean enable);
void enableTdlsWithMacAddress(String remoteMacAddress, boolean enable);
boolean requestBatchedScan(in BatchedScanSettings requested, IBinder binder, in WorkSource ws);
void stopBatchedScan(in BatchedScanSettings requested);
List<BatchedScanResult> getBatchedScanResults(String callingPackage);
boolean isBatchedScanSupported();
void pollBatchedScan();
}