Wifi管理工具类 → AppWifiHelperMgr

 
  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;
  }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值