android 无线管理的帮助类

安卓wifi操作的封装 希望和大家一起 交流和学习 QQ群:群号是1160373684

private WifiManager wifiManager;// 声明Wifi管理对象
private WifiInfo wifiInfo;// Wifi信息
private List<ScanResult> scanResultList; // 扫描出来的网络连接列表
private List<WifiConfiguration> wifiConfigList;// 网络配置列表
private WifiLock wifiLock;// Wifi锁

/**
* 构造函数
* @param context
*/
public WifiHelper(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;
}
}


更多相关文章

  1. PX30_Android8.1默认3G移动网络改为默认4G移动网络
  2. android下载网络图片并缓存
  3. Android 在非UI线程中读网络数据
  4. Android 7.0 如何将应用添加设置列表
  5. Android使用OKHttp访问网络获取Cookie和带Cookie的请求
  6. android中进入设置页面(常见网络设置页面,设置页面,蓝牙页面等等)的a
  7. android http通信(二) 英译汉字典实例探究网络通信三种方法

随机推荐

  1. Android(安卓)Studio目录结构
  2. Android录屏命令、Android录Gif、Android
  3. android的大好时光结束进行时
  4. Google:Android正在走出碎片化泥沼
  5. Android(安卓)知识图谱:该如何入门Android
  6. Android音乐播放器系列讲解之一
  7. 我的Android相关文章目录
  8. android切换效果、Flutter信息类App、仿
  9. Android(安卓)与 Unity 交互一
  10. Java事件模型与Android事件模型的比较