代码 

package com.wifitest;

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 WifiManageClass {
private WifiManager wifiManager;// 声明管理对象 private WifiInfo wifiInfo;// Wifi信息 private List<ScanResult> scanResultList; // 扫描出来的网络连接列表 private List<WifiConfiguration> wifiConfigList;// 网络配置列表 private WifiLock wifiLock;// Wifi锁 public WifiManageClass(Context context) {
this.wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);// 获取Wifi服务 // 得到Wifi信息
this.wifiInfo = wifiManager.getConnectionInfo();// 得到连接信息 } public boolean getWifiStatus()
{
return wifiManager.isWifiEnabled();
} // 打开/关闭 wifi
public boolean openWifi() {
if (!wifiManager.isWifiEnabled()) {
return wifiManager.setWifiEnabled(true);
} else {
return false;
} } public boolean closeWifi() {
if (!wifiManager.isWifiEnabled()) {
return true;
} else {
return wifiManager.setWifiEnabled(false);
}
} // 锁定/解锁wifi
// 其实锁定WiFI就是判断wifi是否建立成功,在这里使用的是held,握手的意思acquire 得到!
public void lockWifi() { wifiLock.acquire(); } public void unLockWifi() {
if (!wifiLock.isHeld()) {
wifiLock.release(); // 释放资源
}
} // 我本来是写在构造函数中了,但是考虑到不是每次都会使用Wifi锁,所以干脆自己建立一个方法!需要时调用,建立就OK
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;
} // 获取扫描列表
public StringBuilder lookUpscan() {
StringBuilder scanBuilder = new StringBuilder(); for (int i = 0; i < scanResultList.size(); i++) {
scanBuilder.append("编号:" + (i + 1));
scanBuilder.append(scanResultList.get(i).toString()); //所有信息
scanBuilder.append("\n");
} return scanBuilder;
}
//获取指定信号的强度
public int getLevel(int NetId)
{
return scanResultList.get(NetId).level;
} // 获取本机Mac地址
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
public int getCurrentNetId() {
return (wifiInfo == null) ? null : wifiInfo.getNetworkId();
} // 返回所有信息
public String getwifiInfo() {
return (wifiInfo == null) ? null : wifiInfo.toString();
} // 获取IP地址
public int getIP() {
return (wifiInfo == null) ? null : wifiInfo.getIpAddress();
} // 添加一个连接
public boolean addNetWordLink(WifiConfiguration config) {
int NetId = wifiManager.addNetwork(config);
return wifiManager.enableNetwork(NetId, true);
} // 禁用一个链接
public boolean disableNetWordLick(int NetId) {
wifiManager.disableNetwork(NetId);
return wifiManager.disconnect();
} // 移除一个链接
public boolean removeNetworkLink(int NetId) {
return wifiManager.removeNetwork(NetId);
}
//不显示SSID
public void hiddenSSID(int NetId)
{
wifiConfigList.get(NetId).hiddenSSID=true;
}
//显示SSID
public void displaySSID(int NetId)
{
wifiConfigList.get(NetId).hiddenSSID=false;
} }

Android WIFI 操作的更多相关文章

  1. Android WIFI 启动流程(TIP^^)

    前几天因为解决一堆Bug,没时间写.我不会每天都写,就是为了存档一些资料. 内容来源:工作中接触到的+高手博客+文档(Books)=自己理解 仅限参考^^ 此博客是上一个<<Android ...

  2. Android Wi-Fi基本操作

    从用户角度看,Android Wi-Fi模块自下向上可以看为5层:硬件驱动程序,wpa_suppplicant,JNI,WiFi API,WifiSettings应用程序. 1.wpa_supplic ...

  3. android——wifi系统架构

    1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口.整个WiFi系统架构如下图所示 ...

  4. Android Wi-Fi Display(Miracast)介绍

    地址:http://blog.csdn.net/innost/article/details/8474683 Android Wi-Fi Display(Miracast)介绍 2012年11月中旬, ...

  5. android -------- WIFI 详解

    今天简单的来聊一下安卓开发中的Wifi,一些常用的基础,主要分为两部分: 1:WiFi的信息 2:WiFi的搜索和连接 现在app大多都需要从网络上获得数据.所以访问网络是在所难免.但是在访问网络之前 ...

  6. Android WiFi开发

    概述 介绍Android WiFi的扫描.连接.信息.以及WiFi热点等等的实现,并用代码实现. 详细 代码下载:http://www.demodashi.com/demo/10660.html 一. ...

  7. Android WiFi直连 双向通信

    代码地址如下:http://www.demodashi.com/demo/13965.html 原文地址:https://blog.csdn.net/VNanyesheshou/article/det ...

  8. Android权限操作之uses-permission详解

    本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...

  9. android wifi框架

    ---恢复内容开始--- frameworks/base/services/java/com/android/server/wifi 中的ReadMe文件 WifiService: Implement ...

随机推荐

  1. Boost的自动链接功能

    Boost是一个强大的C++第三方库,但是Boost的各种问题实在是很让人蛋疼.我搜到过一篇文章关于LuaBind使用Boost Build管理工具来管理源代码以及编译的博文,其第一句话就是Fuck ...

  2. 1. opencv的初体验

    http://guoming.me/opencv-config  这篇文章有讲解opencv的安装与配置 一些常用库 opencv_core249d.lib opencv_imgproc249d.li ...

  3. 拥抱ARM妹纸第二季 之 第二次 约会需要浪漫,这么大灯泡怎么弄?

    终于轮到俺的小穆出场啦.有请能让太阳也为之暗淡的小穆闪亮登场-,鼓掌吧,欢呼吧!-- ♪♪ We can burn brighter Than the sun ~~~ ♪♪ “谢谢---“ 唱的太棒啦 ...

  4. c++中string类的详解

    ,<时返回-1,==时返回0  string的子串:string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串strin ...

  5. 【iis错误码】IIS 服务 这些年遇到的错误码

      II 发生错误,客户端似乎有问题.例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息. 400 - 错误的请求. 401 - 访问被拒绝.   -- 暴力添加everyone用户,  i ...

  6. 与MySQL交互(felixge/node-mysql)

    目录 简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据 ...

  7. HTML弹出窗口

    1.最简单的 <script type="text/javascript"> <!-- window.open("http://cn.bing.com& ...

  8. 1226: [SDOI2009]学校食堂Dining - BZOJ

    Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以 ...

  9. 1067: [SCOI2007]降雨量 - BZOJ

    Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003,2 ...

  10. ios7去除手势滑动返回

    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { sel ...