android下获取无线wif信号、ssid、MAC等操作类
一个android下获取无线wif信号、ssid、MAC等操作的类。
WifiAdmin.java
package com.afu; 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;
import android.util.Log; public class WifiAdmin {
private final static String TAG = "WifiAdmin";
private StringBuffer mStringBuffer = new StringBuffer();
private List<ScanResult> listResult;
private ScanResult mScanResult;
// 定义WifiManager对象
private WifiManager mWifiManager;
// 定义WifiInfo对象
private WifiInfo mWifiInfo;
// 网络连接列表
private List<WifiConfiguration> mWifiConfiguration;
// 定义一个WifiLock
WifiLock mWifiLock; /**
* 构造方法
*/
public WifiAdmin(Context context) {
mWifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
mWifiInfo = mWifiManager.getConnectionInfo();
} /**
* 打开Wifi网卡
*/
public void openNetCard() {
if (!mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(true);
}
} /**
* 关闭Wifi网卡
*/
public void closeNetCard() {
if (mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
} /**
* 检查当前Wifi网卡状态
*/
public void checkNetCardState() {
if (mWifiManager.getWifiState() == 0) {
Log.i(TAG, "网卡正在关闭");
} else if (mWifiManager.getWifiState() == 1) {
Log.i(TAG, "网卡已经关闭");
} else if (mWifiManager.getWifiState() == 2) {
Log.i(TAG, "网卡正在打开");
} else if (mWifiManager.getWifiState() == 3) {
Log.i(TAG, "网卡已经打开");
} else {
Log.i(TAG, "没有获取到状态-_-");
}
} /**
* 扫描周边网络
*/
public void scan() {
mWifiManager.startScan();
listResult = mWifiManager.getScanResults();
if (listResult != null) {
Log.i(TAG, "当前区域存在无线网络,请查看扫描结果");
} else {
Log.i(TAG, "当前区域没有无线网络");
}
} /**
* 得到扫描结果 获取无线信号列表
*/
public String getScanResult() {
// 每次点击扫描之前清空上一次的扫描结果
if (mStringBuffer != null) {
mStringBuffer = new StringBuffer();
}
// 开始扫描网络
scan();
listResult = mWifiManager.getScanResults();
if (listResult != null) {
for (int i = 0; i < listResult.size(); i++) {
mScanResult = listResult.get(i);
mStringBuffer = mStringBuffer.append("NO.").append(i + 1)
.append(" :").append(mScanResult.SSID).append("->")
.append(mScanResult.BSSID).append("->")
.append(mScanResult.capabilities).append("->")
.append(mScanResult.frequency).append("->")
.append(mScanResult.level).append("->")
.append(mScanResult.describeContents()).append("\n\n");
}
}
Log.i(TAG, mStringBuffer.toString());
return mStringBuffer.toString();
} /**
* 连接指定网络
*/
public void connect() { mWifiInfo = mWifiManager.getConnectionInfo();
if (mWifiInfo != null) {
Log.d("wifiInfo", mWifiInfo.toString());
Log.d("SSID",mWifiInfo.getSSID());
}
} /**
* 断开当前连接的网络
*/
public void disconnectWifi() {
int netId = getNetworkId();
mWifiManager.disableNetwork(netId);
mWifiManager.disconnect();
mWifiInfo = null;
} /**
* 检查当前网络状态
*
* @return String
*/
public void checkNetWorkState() {
if (mWifiInfo != null) {
Log.i(TAG, "网络正常工作");
} else {
Log.i(TAG, "网络已断开");
}
} /**
* 得到连接的ID
*/
public int getNetworkId() {
return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();
} /**
* 得到IP地址
*/
public int getIPAddress() {
return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();
} // 锁定WifiLock
public void acquireWifiLock() {
mWifiLock.acquire();
} // 解锁WifiLock
public void releaseWifiLock() {
// 判断时候锁定
if (mWifiLock.isHeld()) {
mWifiLock.acquire();
}
} // 创建一个WifiLock
public void creatWifiLock() {
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);
} // 得到MAC地址
public String getMacAddress() {
return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();
} // 得到接入点的BSSID
public String getBSSID() {
return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();
} // 得到WifiInfo的所有信息包
public String getWifiInfo() {
return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();
} // 添加一个网络并连接
public int addNetwork(WifiConfiguration wcg) {
int wcgID = mWifiManager.addNetwork(mWifiConfiguration.get(3));
mWifiManager.enableNetwork(wcgID, true);
return wcgID;
}
}
调用方法:
WifiAdmin mWifiAdmin = new WifiAdmin(Main.this);
String mScanResult = mWifiAdmin.getScanResult();
scanResult.setText(mScanResult);
android下获取无线wif信号、ssid、MAC等操作类的更多相关文章
- Android下获取FPS的几种方法
FPS(Frames Per Second)是关乎Android用户体验最为重要的指标之一,而在VR中更是如此.为了评估VR系统.VR SDK及Unity应用的性能,通常会实时获取FPS并将其显示出来 ...
- cocos2d-x在win32和iOS、android下获取当前系统时间的方法
最近在游戏里要显示当前系统时间的功能,网上一搜很多写着获取的方法,大都是如下 struct cc_timeval now; CCTime::gettimeofdayCocos2d(&now, ...
- Android中获取正在运行的应用程序-----ActivityManager.RunningAppProcessInfo类详解
今天继续讲解关于ActivityManager的使用,通过前面一节的学习,我们学会了如何利用ActivityManager获取系统里 正在运行的进程.本文要讲解的知识点是利用这些进程信息获取系统里正在 ...
- Xamarin.Android下获取与解析JSON
一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的 ...
- Delphi获取Android下GPS的NMEA 0183数据
下面的程序,可以实现Android下获取GNSS的NMEA0183数据: unit utAndroidNmea; interface uses Androidapi.JNIBridge, Androi ...
- java获取服务器IP地址及MAC地址的方法
这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下 本文实例讲述了 ...
- URL转Drawable之 Android中获取网络图片的三种方法
转载自: http://doinone.iteye.com/blog/1074283 Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Applicatio ...
- (转载)Mac下使用Android Studio 获取 SHA1和MD5
Mac下使用Android Studio 获取 SHA1和MD5 2015-08-10 15:38 1776人阅读 评论(1) 收藏 举报 分类: Android(14) 版权声明:本文为博主原创 ...
- android程序获取WIFI的IP地址和MAC地址
转自:http://my.oschina.net/chenj/blog/68680 近日在鼓捣这玩意,拿出来大家分享一下,代码比较简单,如果有不懂的再问 <Button android:id=& ...
随机推荐
- Keywords Search (ac 自己主动机)
Keywords Search Problem Description In the modern time, Search engine came into the life of everybod ...
- wkhtmtopdf--高分辨率转HTML成PDF--目录篇
原文:wkhtmtopdf--高分辨率转HTML成PDF--目录篇 wkhtmtopdf--高分辨率转HTML成PDF(一):简述wkhtmtopdf的简介和安装 wkhtmtopdf--高分辨率转H ...
- 以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区
以正确的方式开源 Python 项目 - 技术翻译 - 开源中国社区 以正确的方式开源 Python 项目 英文原文:Open Sourcing a Python Project the Right ...
- Mod in math
An Introduction to Modular Math When we divide two integers we will have an equation that looks like ...
- select下拉菜单反显不可改动,且submit能够提交数据
首先通过后台funcA()将下拉菜单反显不可改动的数据response到disable.jsp页面,disable.jsp: <script> var data1=${result.obj ...
- java访问mysql方法数据库
1.下载界面包mysql-connector-java-5.0.8-bin.jar 下载链接 2.程序 (1)载入驱动 (2)编程连接操作 (3)返回结果处理 编程演示样例 import java.s ...
- ABP中动态WebAPI原理解析
ABP中动态WebAPI原理解析 动态WebAPI应该算是ABP中最Magic的功能之一了吧.开发人员无须定义继承自ApiController的类,只须重用Application Service中的类 ...
- nyist oj 311 全然背包 (动态规划经典题)
全然背包 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描写叙述 直接说题意,全然背包定义有N种物品和一个容量为V的背包.每种物品都有无限件可用.第i种物品的体积是c,价值是 ...
- OSPF拓扑排错报告
OSPF排错报告 故障点一:PPP链路故障 故障现象: R2和R4之间的PPP链路一会down一会UP 故障分析: 1) ppp 认证类型是否一致 2) ppp chap认证用 ...
- 用Python的Tkinter实现时钟
import Tkinter,sys,time root=Tkinter.Tk() root.minsize(, ) Label1=Tkinter.Label(text=time.strftime(' ...