69 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
|  * 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.ISendMgmtFrameEvent;
 | |
| import android.net.wifi.nl80211.IWifiScannerImpl;
 | |
| 
 | |
| /**
 | |
|  * IClientInterface represents a network interface that can be used to connect
 | |
|  * to access points and obtain internet connectivity.
 | |
|  * @hide
 | |
|  */
 | |
| interface IClientInterface {
 | |
|   // Get packet counters for this interface.
 | |
|   // First element in array is the number of successfully transmitted packets.
 | |
|   // Second element in array is the number of tramsmission failure.
 | |
|   // This call is valid only when interface is associated with an AP, otherwise
 | |
|   // it returns an empty array.
 | |
|   int[] getPacketCounters();
 | |
| 
 | |
|   // Do signal poll for this interface.
 | |
|   // First element in array is the RSSI value in dBM.
 | |
|   // Second element in array is the transmission bit rate in Mbps.
 | |
|   // Third element in array is the association frequency in MHz.
 | |
|   // Fourth element in array is the last received packet bit rate in Mbps.
 | |
|   // This call is valid only when interface is associated with an AP, otherwise
 | |
|   // it returns an empty array.
 | |
|   int[] signalPoll();
 | |
| 
 | |
|   // Get the MAC address of this interface.
 | |
|   byte[] getMacAddress();
 | |
| 
 | |
|   // Retrieve the name of the network interface corresponding to this
 | |
|   // IClientInterface instance (e.g. "wlan0")
 | |
|   @utf8InCpp
 | |
|   String getInterfaceName();
 | |
| 
 | |
|   // Get a WifiScanner interface associated with this interface.
 | |
|   // Returns null when the underlying interface object is destroyed.
 | |
|   @nullable IWifiScannerImpl getWifiScannerImpl();
 | |
| 
 | |
|   // Sends an arbitrary 802.11 management frame on the current channel.
 | |
|   // @param frame Bytes of the 802.11 management frame to be sent, including the
 | |
|   //     header, but not including the frame check sequence (FCS).
 | |
|   // @param Callback triggered when the transmitted frame is ACKed or the
 | |
|   //     transmission fails.
 | |
|   // @param mcs MCS rate which the management frame will be sent at. If mcs < 0,
 | |
|   //     the driver will select the rate automatically. If the device does not
 | |
|   //     support sending the frame at a specified MCS rate, the transmission
 | |
|   //     will be aborted and ISendMgmtFrameEvent.OnFailure() will be called with
 | |
|   //     reason ISendMgmtFrameEvent.SEND_MGMT_FRAME_ERROR_MCS_UNSUPPORTED.
 | |
|   oneway void SendMgmtFrame(
 | |
|       in byte[] frame, in ISendMgmtFrameEvent callback, int mcs);
 | |
| }
 |