wifi 常用方法均在这段代码中:
addNetwork :添加一个配置好的网络
calculateSignalLevel :计算信号的强度
compareSignalLevel :比较两个信号的强度
cerateWifiLock:创建一个Wifi锁disableNetwork:取消一个配置好的网络(使其不可用)
disConnect:从接入点断开
enableNetwork:允许指定网络连接
getConfiguredNetwork:得到客户端所有已经配置好的网络列表getConnectionInfo:得到正在使用的连接的动态信息
getDhcpInfo:得到最后一次成功连接的DHCP请求的DHCP地址
getScanResults:得到被扫描的接入点
getWifiState:得到可用Wifi状态
isWifiEnabled:判断wifi是否可用
pingSupplicant:检查客户端对请求的反应
reassociate:从当前接入点重新连接
removeNetwork:从已经配置好的网络列表中删除指定ID的网络
saveConfiguration ;保存当前配置好的网络列表
setWifiEnable:设置wifi是否可用startScan:扫描存在的接入点
updateNetwork:更新已经配置好的网络代码如下:
package com.test.irant10;
import java.util.List;
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;public class WifiAdmin {
//定义wifiManager对象 private WifiManager mWifiManager; //定义WifiInfo对象 private WifiInfo mWifiInfo; //扫描出的网络列表 private List<WifiConfiguration> mWifiConfiguration; //扫描出的网络接入点列表 private List<ScanResult> mScanResult; //定义WifiLock 锁对象 WifiLock mWifiLock; //构造器 public WifiAdmin(Context context){ //取得WifiManager对象 mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); //取得WifiInfo对象 mWifiInfo = mWifiManager.getConnectionInfo(); } //打开Wifi public void OpenWifi(){ if(!mWifiManager.isWifiEnabled()){ mWifiManager.setWifiEnabled(true); } } //关闭Wifi public void ColseWifi(){ if(mWifiManager.isWifiEnabled()){ mWifiManager.setWifiEnabled(false); } } //锁定wifiLock public void AcquireWifiLock(){ mWifiLock.acquire(); } //解锁WifiLock public void ReleaseWifiLock(){ //判断wifi是否锁住 if(mWifiLock.isHeld()){ mWifiLock.release(); } } //创建一个wifiLock public void CreateWifiLock(){ mWifiLock = mWifiManager.createWifiLock("Test"); } //得到配置好的网络 public List<WifiConfiguration> GetConfiguration(){ return mWifiConfiguration; } //制定配置好的网络进行连接 public void ConnectConfiguration(int index){ //索引大于配置好的网络索引返回 if(index > mWifiConfiguration.size()){ return; } //连接配置好的制定ID的网络 mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId, true); } //扫描存在的接入点 public void StartScan(){ mWifiManager.startScan(); //得到扫描结果 mScanResult = mWifiManager.getScanResults(); //得到配置好的连接 mWifiConfiguration = mWifiManager.getConfiguredNetworks(); } //获得网络列表 public List<ScanResult> getWifiList(){ return mScanResult; } //查看扫描结果 public StringBuilder lookUpScan(){ StringBuilder stringBuilder = new StringBuilder(); for(int i = 0; i < mScanResult.size(); i++){ stringBuilder.append("Index_" + new Integer(i + 1).toString() + ":"); //将ScanResult信息转换为一个字符串宝 //其中包括BSSID、SSID、capabilities、frequency和level stringBuilder.append(mScanResult.get(i).toString()); stringBuilder.append("\n"); } return stringBuilder; } //得到mac地址 public String GetMacAddress(){ return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress(); } //得到接入点的BSSID public String GetBssID(){ return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID(); } //得到IP地址 public int GetIP(){ return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress(); } //得到连接的ID public int GetNetworkId(){ return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId(); } //得到WifiInfo的所有信息 public String GetWifiInfo(){ return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString(); } //添加一个网络并连接 public void AddNetwork(WifiConfiguration wcg){ int wcgID = mWifiManager.addNetwork(wcg); mWifiManager.enableNetwork(wcgID, true); } //断开制定网络的连接 public void DisconnectWifi(int netId){ mWifiManager.disableNetwork(netId); mWifiManager.disconnect(); } }不过记得要加权限哦!
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>