blob: e61973936bf3347e687b3e7891000dd5d55789c6 [file] [log] [blame]
/*
* Copyright (C) 2016 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.nl80211;
import android.net.wifi.nl80211.IPnoScanEvent;
import android.net.wifi.nl80211.IScanEvent;
import android.net.wifi.nl80211.NativeScanResult;
import android.net.wifi.nl80211.PnoSettings;
import android.net.wifi.nl80211.SingleScanSettings;
/**
* @hide
*/
interface IWifiScannerImpl {
// Type of scan request. This is used in |SingleScanSettings.scan_type|.
const int SCAN_TYPE_LOW_SPAN = 0;
const int SCAN_TYPE_LOW_POWER = 1;
const int SCAN_TYPE_HIGH_ACCURACY = 2;
// Scan request status
// Request succeeded
const int SCAN_STATUS_SUCCESS = 0;
// All other standard error codes are mapped to this
const int SCAN_STATUS_FAILED_GENERIC = 1;
//Device or resource busy - Due to connection in progress, processing another scan request etc.
const int SCAN_STATUS_FAILED_BUSY = 2;
// Aborted - Due to another high priority operation like roaming, offload scan etc
const int SCAN_STATUS_FAILED_ABORT = 3;
// No such device - Due to wrong interface or interface doesn't exist
const int SCAN_STATUS_FAILED_NODEV = 4;
// Invalid argument - Due to wrong/unsupported argument passed in scan params
const int SCAN_STATUS_FAILED_INVALID_ARGS = 5;
// Scan type used internally if the device does not support
// the type specified in |SingleScanSettings.scan_type|.
// Scan requests from framework with this type will be rejected.
const int SCAN_TYPE_DEFAULT = -1;
// Get the latest single scan results from kernel.
NativeScanResult[] getScanResults();
// Get the latest pno scan results from the interface which has most recently
// completed disconnected mode PNO scans
NativeScanResult[] getPnoScanResults();
// Get the max number of SSIDs that the driver supports per scan.
int getMaxSsidsPerScan();
// Request a single scan using a SingleScanSettings parcelable object.
// This interface is deprecated from Android 14, newer wificond implementation should call
// scanRequest() which can return the scan request status.
boolean scan(in SingleScanSettings scanSettings);
// Request a single scan using a SingleScanSettings parcelable object.
int scanRequest(in SingleScanSettings scanSettings);
// Subscribe single scanning events.
// Scanner assumes there is only one subscriber.
// This call will replace any existing |handler|.
oneway void subscribeScanEvents(IScanEvent handler);
// Unsubscribe single scanning events .
oneway void unsubscribeScanEvents();
// Subscribe Pno scanning events.
// Scanner assumes there is only one subscriber.
// This call will replace any existing |handler|.
oneway void subscribePnoScanEvents(IPnoScanEvent handler);
// Unsubscribe Pno scanning events .
oneway void unsubscribePnoScanEvents();
// Request a scheduled scan.
boolean startPnoScan(in PnoSettings pnoSettings);
// Stop any existing scheduled scan.
// Returns true on success.
// Returns false on failure or there is no existing scheduled scan.
boolean stopPnoScan();
// Abort ongoing scan.
void abortScan();
// add more interfaces.
}