一、怎样获取wifi对象并进行操作

=================

要操作 WIFI 设备,需要先获取  Context.getSystemService(Context.WIFI_SERVICE) 获取 WifiManager 对象,并通过这个对象来管理WIFI设备。

addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况下,这个WIFI网络是DISABLE状态的。

calculateSignalLevel(int rssi , int numLevels) 计算信号的等级

compareSignalLevel(int rssiA, int rssiB) 对比网络A和网络B的信号强度

createWifiLock(int lockType, String tag) 创建一个WIFI 锁,锁定当前的WIFI连接

disableNetwork(int netId) 让一个网络连接失效

disconnect() 断开当前的WIFI连接

enableNetwork(int netId, Boolean disableOthers) 连接netId所指的WIFI网络,并是其他的网络都被禁用

getConfiguredNetworks() 获取网络连接的状态

getConnectionInfo() 获取当前连接的信息

getDhcpInfo() 获取DHCP 的信息

getScanResulats() 获取扫描测试的结果

getWifiState() 获取当前WIFI设备的状态

isWifiEnabled() 判断WIFI设备是否打开

pingSupplicant() ping操作,和PC的ping操作相同作用

ressociate() 重新连接WIFI网络,即使该网络是已经被连接上的

reconnect() 重新连接一个未连接上的WIFI网络

removeNetwork() 移除某一个网络

saveConfiguration() 保留一个配置信息

setWifiEnabled() 让一个连接有效

startScan() 开始扫描

updateNetwork(WifiConfiguration config) 更新一个网络连接

二、常用的wifi状态

===========

WIFI_STATE_DISABLED //WIFI网卡不可用

WIFI_STATE_DISABLING //WIFI网卡正在关闭

WIFI_STATE_ENABLED //WIFI网卡可用

WIFI_STATE_ENABLING //WIFI网卡正在打开

WIFI_STATE_UNKNOWN //WIFI网卡状态不可知

三、列表查看有连接信号的wifi热点

==================

ScanResult 对象就是用来表示附近 wifi 热点的属性的,可通过  WifiManager.getScanResults()  返回一个ScanResult列表,

ScanResult 的重要属性如下:

1.  BSSID 接入点的地址

2.  SSID 网络的名字,唯一区别WIFI网络的名字

3.  Capabilities 网络接入的性能

4.  Frequency 当前WIFI设备附近热点的频率(MHz)

5.  Level 所发现的WIFI网络信号强度

四、连接wifi热点

==============

通过  WifiManager.getConfiguredNetworks()  方法会返回 WifiConfiguration 对象的列表,然后再调用 WifiManager.enableNetwork(); 方法就可以连接上指定的热点。

五、查看已经连接上的wifi信息

================

WifiInfo 是专门用来表示连接的对象,这个对象可以通过 WifiManager.getConnectionInfo() 来获取。

WifiInfo中包含了当前连接中的相关信息。

getBSSID() 获取BSSID属性

getDetailedStateOf() 获取客户端的连通性

getHiddenSSID() 获取SSID 是否被隐藏

getIpAddress() 获取IP 地址

getLinkSpeed() 获取连接的速

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

getMacAddress() 获取Mac 地址

getRssi() 获取802.11n 网络的信号

getSSID() 获取SSID

getSupplicanState() 获取具体客户端状态的信息

六、示例

====

1)获得WifiManager

WifiManager wifiManager=(WifiManager) getSystemService(WIFI_SERVICE);

2)获取Wifi信息

WifiInfo wifiInfo=wifiManager.getConnectionInfo(); //当前wifi连接信息

List scanResults=wifiManager.getScanResults();//搜索到的设备列表

for (ScanResult scanResult : scanResults) {

tv.append("\n设备名:"+scanResult.SSID

+" 信号强度:"+scanResult.level+"/n :"+wifiManager.calculateSignalLevel(scanResult.level,4));

}

附 WifiManager中计算级别的代码:

/**

  • Calculates the level of the signal. This should be used any time a signal

  • is being shown.

  • @param rssi The power of the signal measured in RSSI.

  • @param numLevels The number of levels to consider in the calculated

  •        level.
    
  • @return A level of the signal, given in the range of 0 to numLevels-1

  •     (both inclusive).
    

*/

public static int calculateSignalLevel(int rssi, int numLevels) {

if (rssi <= MIN_RSSI) {

return 0;

} else if (rssi >= MAX_RSSI) {

return numLevels - 1;

} else {

int partitionSize = (MAX_RSSI - MIN_RSSI) / (numLevels - 1);

return (rssi - MIN_RSSI) / partitionSize;

}

}

3)网络权限

如:方法封装(返回返回当前连接的wifi的名字)

private String getConnectWifiSsid(){

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);

WifiInfo wifiInfo = wifiManager.getConnectionInfo();

Log.d(“wifiInfo”, wifiInfo.toString());

Log.d(“SSID”,wifiInfo.getSSID());

return wifiInfo.getSSID();

}

如果不是想获取当前连接,而是想获取WIFI设置中的连接, 可以使用  WifiManager.getConfiguredNetworks

七、获取当前已连接的wifi配置信息

==================

public class MyWifi extends Activity

{

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView infoText = (TextView) this.findViewById(R.id.info);

infoText.setText(getInfo());

}

private String getInfo()

{

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

WifiInfo info = wifi.getConnectionInfo();

String maxText = info.getMacAddress();

String ipText = intToIp(info.getIpAddress());

String status = “”;

if (wifi.getWifiState() == WifiManager.WIFI_STATE_ENABLED)

{

status = “WIFI_STATE_ENABLED”;

}

String ssid = info.getSSID();

int networkID = info.getNetworkId();

int speed = info.getLinkSpeed();

return “mac:” + maxText + “\n\r”

  • “ip:” + ipText + “\n\r”

  • “wifi status :” + status + “\n\r”

  • “ssid :” + ssid + “\n\r”

  • “net work id :” + networkID + “\n\r”

Android wifi属性简介 及 wifi信息获取(wifi列表、配置信息相关推荐

  1. 正在获取服务器信息,正在获取远程列表服务器信息

    正在获取远程列表服务器信息 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源.在精简视图中,您可以快速获取弹性云服务器基本信息.登录信息.配置信息. ...

  2. 获取服务器主列表一直显示稍等,正在获取远程列表服务器信息

    正在获取远程列表服务器信息 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源.在精简视图中,您可以快速获取弹性云服务器基本信息.登录信息.配置信息. ...

  3. 计算机储存配置信息,怎么看电脑配置信息

    对于很多老鸟来说,都知道怎么看自己电脑配置了,但是那些买了品牌机或者是笔记本的新手就不知道怎么看自己计算机配置了.那么今天学习啦小编就教大家怎么看电脑配置信息. 查看电脑配置信息 1.一.让我们先用系 ...

  4. 高德地图android api定位失败,android 定位没有问题,iOS定位失败获取不到位置信息...

    @override void initState() { super.initState(); _type = widget.type; WidgetsBinding.instance.addPost ...

  5. android8.0扫描wifi,解决8.0/9.0获取Wifi名字为空 WifiInfo.getSSID为空的情况

    最近遇到一个奇怪的bug,部分手机上获取wifi的名字,通过WifiManager.getConnectionInfo().getSSID()为"unknown ssid",调试查 ...

  6. C/C++通过WMI和系统API函数获取获取系统硬件配置信息(转)

    前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU.内存.网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧... 当然第一想法肯定是利用Windo ...

  7. java将域名解析为IP地址,获取网卡的配置信息

    DNS域名解析系统 系统简介:用户通过输入需要查询的域名,便可输出域名对应的一个IP地址或多个IP地址. 系统功能:1.通过输入域名可以查询域名所对应的IP地址. 2.可以获取当地的主机IP地址和本地 ...

  8. easy connect 获取服务端配置信息失败_如何统计 Mysql 服务器状态信息?

    最近在看<高性能的 Mysql>一书,下面是关于如何学习统计 Mysql 服务器状态的学习总结,主要是学习使用 SHOW STATUS,SHOW ENGINE INNODB STATUS, ...

  9. 华硕计算机硬件信息,华硕EeePC T101MT配置信息及散热

    华硕EeePC T101MT配置信息及散热 我们评测的这台机器配置如下,处理器:Intel Atom N450,主频为1.66MHz,45nm工艺,2M二级缓存:内存:1G DDR2:硬盘:160G, ...

最新文章

  1. PCB多层线路板打样难点
  2. 智源青年科学家候选人 | 张祥雨:挑战自动化深度学习系统
  3. 安卓项目查手机电量功能_不做低头族,一键开启手机上的这一功能,手机信息随时查...
  4. ST-3806系列单圈编码器 说明书
  5. GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...
  6. 移动互联网高级开发学习笔记
  7. jvm_虚拟机组成部分概述
  8. Source Insight经典教程
  9. C#学习之按钮点击事件
  10. 结合ENVI与ArcMAP的NC数据处理(均值、最大最小值等)心得记录
  11. html如何加入浮动客服,css如何实现客服悬浮效果
  12. 网页加载速度优化方案
  13. 摩尔定律终结后 科技也许会向这3个方向前进
  14. Skyline软件二次开发初级——10如何在WEB页面中的三维地图上控制图层对象
  15. 按键精灵 android,按键精灵安卓版
  16. 模拟电子技术基础_常用半导体器件
  17. 高斯消元法python编程_割圆术计算圆周率与矩阵高斯消元法(Python)
  18. 《C++ Primer Plus 第六版 中文版》的研读与学习(五)
  19. AntD Pro v5记录-布局
  20. IoT黑板报0209:工信部明确增加物联网网号

热门文章

  1. ACL 2021 | 基于词依存信息类型映射记忆神经网络的关系抽取
  2. 吴恩达提出了著名的二八定律
  3. k8s调度过程中的资源分配问题
  4. python+微信+腾讯智能闲聊
  5. Nature综述:人类微生物培养及培养组学culturomics
  6. pthread_cond_wait()理解
  7. java第一个代码Hello,World
  8. 小学文凭宝妈在家开网店?其实做跨境并不难!
  9. 营销活动思维导图系列(共55份)
  10. 利用python批量合并excel和word内的表格