Wifi涉及到的API

来源:互联网 发布:node培训 编辑:程序博客网 时间:2024/05/17 22:08
下边是封装好的一个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的物理地址

0 0
原创粉丝点击