package com.jingewenku.abrahamcaijin.commonutil; | |
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; | |
import java.util.List; | |
/** | |
* 主要功能:Wifi管理工具类 | |
* | |
* @Prject: CommonUtilLibrary | |
* @Package: com.jingewenku.abrahamcaijin.commonutil | |
* @author: AbrahamCaiJin | |
* @date: 2017年05月03日 16:20 | |
* @Copyright: 个人版权所有 | |
* @Company: | |
* @version: 1.0.0 | |
*/ | |
public class AppWifiHelperMgr { | |
private WifiManager wifiManager;// 声明Wifi管理对象 | |
private WifiInfo wifiInfo;// Wifi信息 | |
private List<ScanResult> scanResultList; // 扫描出来的网络连接列表 | |
private List<WifiConfiguration> wifiConfigList;// 网络配置列表 | |
private WifiLock wifiLock;// Wifi锁 | |
/** | |
* 构造函数 | |
* @param context | |
*/ | |
public AppWifiHelperMgr(Context context){ | |
this.wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);// 获取Wifi服务 | |
// 得到Wifi信息 | |
this.wifiInfo = wifiManager.getConnectionInfo();// 得到连接信息 | |
} | |
/** | |
* Wifi状态. | |
* @return | |
*/ | |
public boolean isWifiEnabled(){ | |
return wifiManager.isWifiEnabled(); | |
} | |
/** | |
* 打开 wifi | |
* @return | |
*/ | |
public boolean openWifi(){ | |
if (!isWifiEnabled()) { | |
return wifiManager.setWifiEnabled(true); | |
} else { | |
return false; | |
} | |
} | |
/** | |
* 关闭Wifi | |
* @return | |
*/ | |
public boolean closeWifi(){ | |
if (!isWifiEnabled()) { | |
return true; | |
} else { | |
return wifiManager.setWifiEnabled(false); | |
} | |
} | |
/** | |
* 锁定wifi | |
* 锁定WiFI就是判断wifi是否建立成功,在这里使用的是held(握手) acquire | |
*/ | |
public void lockWifi() { | |
wifiLock.acquire(); | |
} | |
/** | |
* 解锁wifi | |
*/ | |
public void unLockWifi() { | |
if (!wifiLock.isHeld()) { | |
wifiLock.release(); // 释放资源 | |
} | |
} | |
/** | |
* 创建一个Wifi锁,需要时调用 | |
*/ | |
public void createWifiLock() { | |
wifiLock = wifiManager.createWifiLock("flyfly"); // 创建一个锁的标志 | |
} | |
/** | |
* 扫描网络 | |
*/ | |
public void startScan() { | |
wifiManager.startScan(); | |
scanResultList = wifiManager.getScanResults(); // 扫描返回结果列表 | |
wifiConfigList = wifiManager.getConfiguredNetworks(); // 扫描配置列表 | |
} | |
public List<ScanResult> getWifiList() { | |
return scanResultList; | |
} | |
public List<WifiConfiguration> getWifiConfigList() { | |
return wifiConfigList; | |
} | |
/** | |
* 获取扫描WIFI列表的信息 | |
* @return | |
*/ | |
public String lookupScanInfo() { | |
StringBuilder scanBuilder = new StringBuilder(); | |
if(scanResultList == null){ | |
return ""; | |
} | |
for (int i = 0; i < scanResultList.size(); i++) { | |
ScanResult sResult = scanResultList.get(i); | |
scanBuilder.append("编号:" + (i + 1)); | |
scanBuilder.append(" "); | |
scanBuilder.append(sResult.toString()); //所有信息 | |
scanBuilder.append("\n"); | |
} | |
scanBuilder.append("--------------华丽分割线--------------------"); | |
for(int i=0;i<wifiConfigList.size();i++){ | |
scanBuilder.append(wifiConfigList.get(i).toString()); | |
scanBuilder.append("\n"); | |
} | |
return scanBuilder.toString(); | |
} | |
/** | |
* 获取指定Wifi的ssid名称 | |
* @param NetId | |
* @return | |
*/ | |
public String getSSID(int NetId){ | |
return scanResultList.get(NetId).SSID; | |
} | |
/** | |
* 获取指定Wifi的物理地址 | |
* @param NetId | |
* @return | |
*/ | |
public String getBSSID(int NetId){ | |
return scanResultList.get(NetId).BSSID; | |
} | |
/** | |
* 获取指定Wifi的频率 | |
* @param NetId | |
* @return | |
*/ | |
public int getFrequency(int NetId){ | |
return scanResultList.get(NetId).frequency; | |
} | |
/** | |
* 获取指定Wifi的功能 | |
* @param NetId | |
* @return | |
*/ | |
public String getCapabilities(int NetId){ | |
return scanResultList.get(NetId).capabilities; | |
} | |
/** | |
* 获取指定Wifi的信号强度 | |
* @param NetId | |
* @return | |
*/ | |
public int getLevel(int NetId){ | |
return scanResultList.get(NetId).level; | |
} | |
/** | |
* 获取本机Mac地址 | |
* @return | |
*/ | |
public String getMac() { | |
return (wifiInfo == null) ? "" : wifiInfo.getMacAddress(); | |
} | |
public String getBSSID() { | |
return (wifiInfo == null) ? null : wifiInfo.getBSSID(); | |
} | |
public String getSSID() { | |
return (wifiInfo == null) ? null : wifiInfo.getSSID(); | |
} | |
/** | |
* 返回当前连接的网络的ID | |
* @return | |
*/ | |
public int getCurrentNetId() { | |
return (wifiInfo == null) ? null : wifiInfo.getNetworkId(); | |
} | |
/** | |
* 返回所有信息 | |
* @return | |
*/ | |
public String getWifiInfo() { | |
return (wifiInfo == null) ? null : wifiInfo.toString(); | |
} | |
/** | |
* 获取IP地址 | |
* @return | |
*/ | |
public int getIP() { | |
return (wifiInfo == null) ? null : wifiInfo.getIpAddress(); | |
} | |
/** | |
* 添加一个连接 | |
* @param config | |
* @return | |
*/ | |
public boolean addNetWordLink(WifiConfiguration config) { | |
int NetId = wifiManager.addNetwork(config); | |
return wifiManager.enableNetwork(NetId, true); | |
} | |
/** | |
* 禁用一个链接 | |
* @param NetId | |
* @return | |
*/ | |
public boolean disableNetWordLink(int NetId) { | |
wifiManager.disableNetwork(NetId); | |
return wifiManager.disconnect(); | |
} | |
/**移除一个链接 | |
* | |
* @param NetId | |
* @return | |
*/ | |
public boolean removeNetworkLink(int NetId) { | |
return wifiManager.removeNetwork(NetId); | |
} | |
/** | |
* 不显示SSID | |
* @param NetId | |
*/ | |
public void hiddenSSID(int NetId){ | |
wifiConfigList.get(NetId).hiddenSSID=true; | |
} | |
/** | |
* 显示SSID | |
* @param NetId | |
*/ | |
public void displaySSID(int NetId){ | |
wifiConfigList.get(NetId).hiddenSSID=false; | |
} | |
} |
Wifi管理工具类 → AppWifiHelperMgr
最新推荐文章于 2023-09-05 11:15:35 发布