Android WIFI功能开发<2>对WIfi的操作

来源:互联网 发布:linux谁的视频好 编辑:程序博客网 时间:2024/06/06 00:43
package cn.jarlen.tools;


import java.util.ArrayList;


import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.WifiLock;


/**
 * 主要是对WIfi的操作;其中
 * 1. ScanResult:主要是用来描述已经检测出的接入点,包括接入点的地址,名称,
 * 身份验证,频率,信号强度等信息
 * 2. WiFiConfiguration : WiFi配置
 * 
 * 3. WifiInfo : WIFI无线连接的描述,包括接入点,网络连接状态,隐藏的接入点,IP地址,连接速度
 * MAC地址,网络ID,信号强度等信息
 * 
 * getBSSID() 获取BSSID
 * getDetailedStateOf() 获取客户端的连通性
 *   getHiddenSSID() 获得SSID 是否被隐藏
 *   getIpAddress() 获取IP 地址
 *   getLinkSpeed() 获得连接的速度
 *   getMacAddress() 获得Mac 地址
 *   getRssi() 获得802.11n 网络的信号
 *   getSSID() 获得SSID
 *   getSupplicanState() 返回具体客户端状态的信息
 * 
 * @author jarlen
 *
 */


public class WiFiManagerTool {

private WifiManager mWiFiManager;
private WifiLock mWifiLock;


private ArrayList<ScanResult> wifiScanResult;/* 搜索到的wifi信息 */
private ArrayList<WifiConfiguration> wifiConfigurations;  /* 已经连接配置好的wifi信息 */

private WifiInfo mWiFiInfo;/* wifi信息 */


public WiFiManagerTool(Context context){

/*  声明一个wifi管理器,用来管理操作wifi*/
mWiFiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
/* wifi信息 */
mWiFiInfo = mWiFiManager.getConnectionInfo();
}


/**
* open wifi
*/
public void openWiFi(){
if(!mWiFiManager.isWifiEnabled()){
mWiFiManager.setWifiEnabled(true);
}
}

/**
* close wifi
*/
public void closeWiFi(){
if(mWiFiManager.isWifiEnabled()){
mWiFiManager.setWifiEnabled(false);
}
}

/**
* get state of wifi
* @return
*/
public int getWifiState(){
return mWiFiManager.getWifiState();
}

/**
* scan wifi all around
*/
public void startScan(){
mWiFiManager.startScan();
wifiScanResult = (ArrayList<ScanResult>) mWiFiManager.getScanResults();
wifiConfigurations = (ArrayList<WifiConfiguration>) mWiFiManager.getConfiguredNetworks();
}


public ArrayList<WifiConfiguration> getWifiConfigurationList(){
return wifiConfigurations; 
}


public ArrayList<ScanResult> getWiFiScanResultList(){
return wifiScanResult;
}

/**
* 创建一个wifi lock,能够阻止wifi进入睡眠状态,使wifi一直处于活跃状态
* @param lockName
*/
public void createWiFiLock(String lockName){
mWifiLock = mWiFiManager.createWifiLock(lockName);
//return mWifiLock;
}

/**
* 获得wifi锁
*/
public void lockWiFi(){
if(!mWifiLock.isHeld()){
mWifiLock.acquire();
}
}

/**
* 释放wifi 锁
*/
public void releaseWiFiLock(){
if(mWifiLock.isHeld()){
mWifiLock.release();
}
}

/**
* 连接特定的配置好的wifi
* @param index
*/
public void connectionConfiguration(int index){
if(index > wifiConfigurations.size()){
return;
}
else{
mWiFiManager.enableNetwork(wifiConfigurations.get(index).networkId, true);
}
}


public WifiInfo getConnectionInfo(){
return mWiFiInfo;
}

}
0 0
原创粉丝点击