下边是封装好的一个wifi操作类
package jia.wifitest1;
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 java.util.List;
/**
* Created by jiawenchao on 2015/12/7.
*/
public class WifiTools {
private String TAG="WifiTools";
private WifiManager wifiManager;
private WifiInfo wifiInfo;
private List<ScanResult> wifiList=null;
public WifiTools(Context context){
this.wifiManager= (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
}
public boolean isWifiOpen(){
if(wifiManager.isWifiEnabled())
return true;
return false;
}
public void openWifi(){
if(!wifiManager.isWifiEnabled()){
wifiManager.setWifiEnabled(true);
}
}
public void closeWifi(){
if(wifiManager.isWifiEnabled())
wifiManager.setWifiEnabled(false);
}
public List<ScanResult> getWifiList(){ //周围wifi热点信息 每个热点就是ScanResult对象
wifiList=wifiManager.getScanResults();
return wifiList;
}
public WifiConfiguration createWifiConf(String SSID,String Password,int Type){ //配置连接特定的网络
WifiConfiguration config=new WifiConfiguration();
config.allowedAuthAlgorithms.clear();
config.allowedGroupCiphers.clear();
config.allowedKeyManagement.clear();
config.allowedPairwiseCiphers.clear();
config.allowedProtocols.clear();
config.SSID="\""+SSID+"\"";
WifiConfiguration tempConfig=this.isExist(SSID);
if(tempConfig!=null){
wifiManager.removeNetwork(tempConfig.networkId);
}
if(Type==1){
config.wepKeys[0]="";
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex=0;
}
else if(Type==2){
config.hiddenSSID=true;
config.wepKeys[0]="\""+Password+"\"";
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
else {
config.preSharedKey = "\"" + Password + "\"";
config.hiddenSSID = true;
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
// config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
config.status = WifiConfiguration.Status.ENABLED;
}
return config;
}
private WifiConfiguration isExist(String SSID){
List<WifiConfiguration> existConfigs=wifiManager.getConfiguredNetworks();
for(WifiConfiguration t:existConfigs){
if(t.SSID.equals("\""+SSID+"\""))
return t;
}
return null;
}
public void addNetWork(WifiConfiguration wifiConfiguration){ 连接特定的网络
int wcgId=wifiManager.addNetwork(wifiConfiguration);
wifiManager.enableNetwork(wcgId,true);
wifiInfo=wifiManager.getConnectionInfo();
}
public WifiInfo getWifiInfo(){
wifiInfo=wifiManager.getConnectionInfo();
return wifiInfo;
}
}
WifiInfo方法介绍
String getBSSID() 返回热点所在网卡的物理地址
int getMacAddress() 返回客户端网卡物理地址
ScanResult方法介绍
属性 String BSSID 返回热点mac的物理地址