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=& ...
随机推荐
- Cocos2d-x响应android返回键
开启按键按键监听 setKeypadEnabled(true); 重写监听事件函数 virtual void keyBackClicked(); 如: void BanQiuLayer::keyBac ...
- 简单的Ajax应用实例
从网页前端输入提示范围内的字符,然后显示从后台返回的结果 <html> <head> <meta http-equiv="content-type" ...
- rzsz不能大于4G,securefx传5.2G没有问题,
rzsz不能大于4G,securefx传5.2G没有问题, 查看系统限制: $ulimit -acore file size (blocks, -c) 0data seg size ...
- Android中使用SurfaceView和Canvas来绘制动画
事实上每一个View中都有Canvas能够用来绘制动画.仅仅须要在这个View中重载onDraw()方法就能够,可是SurfaceView类是一个专门用来制动动画的类. Canvas(中文叫做&quo ...
- iOS文件保存策略
Where You Should Put Your App’s Files To prevent the syncing and backup processes on iOS devices fro ...
- 【UVA】10012 - How Big Is It?(暴力)
使用DFS枚举所有的安排.每次加入后,当一个圆.他的立场是最大的,并已加入了圆环中的所有切线位置前面. 14383635 10012 option=com_onlinejudge&Itemid ...
- ExtJs选择器
想要利用ExtJS的库函数对DOM进行各类操作,就要得到Element类型的对象,但是Ext.get()取到的虽然是Element,但是参数只能是id,如果大家对jQuery的selector方式很喜 ...
- Linux内核升级
一.测试环境 CentOS6.5 X86 64位 内核版本为 2.6.32 VM 10.07 二.编译内核版本 2.1.kernel 3.2.71 2.2.kernel 3.4.108 2.3.ker ...
- 基于Hadoop的地震数据分析统计
源码下载地址:http://download.csdn.net/detail/huhui_bj/5645641 opencsv下载地址:http://download.csdn.net/detail/ ...
- hdu1495(bfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题意:有三个杯子,开始时第一个杯子装满水(体积为a),倒来倒去,得到其中2个杯里的水的体积都为a ...