下边是封装好的一个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的物理地址
Wifi涉及到的API
最新推荐文章于 2024-06-26 09:40:43 发布