在androi中WIFI信息的获取可以通过系统提供的WIFI Service获取。

WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE);WifiInfo    wifiInfo    = wifi_service.getConnectionInfo();

其中WifiInfo 中比较常用的信息有:

/*

info.getBSSID();      获取BSSID地址。

info.getSSID();       获取SSID地址。  需要连接网络的ID

info.getIpAddress();  获取IP地址。4字节Int, XXX.XXX.XXX.XXX 每个XXX为一个字节

info.getMacAddress(); 获取MAC地址。

info.getNetworkId();  获取网络ID。

info.getLinkSpeed();  获取连接速度,可以让用户获知这一信息。

info.getRssi();       获取RSSI,RSSI就是接受信号强度指示

*/

同时可以通过接收系统的广播,获取当前WIFI的状态

/*WifiManager.WIFI_STATE_DISABLING  正在停止WifiManager.WIFI_STATE_DISABLED    已停止WifiManager.WIFI_STATE_ENABLING    正在打开WifiManager.WIFI_STATE_ENABLED    已开启WifiManager.WIFI_STATE_UNKNOWN    未知*/以下给出具体的实例:1.在布局文件中增加一个WIFI图标,和显示具体信息的文本  (activity_wifi_example.xml)

xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical">android:id="@+id/Icon_WifiStatus"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/ic_wifi"/>android:id="@+id/Label_WifiDetail"android:layout_width="wrap_content"android:layout_height="wrap_content"android:maxWidth="320dp"/>2. 为WIFI图标添加一组可选的图标,在drawable-hdpi目录下增加ic_wifi.xml文件,内容如下:

view plaincopy注意需要导入用到的图片3.在代码中接收WIFI状态广播,开启一个500ms的Timer实时查询WIFI状态 (WifiExample.java)

package com.example.wifiexample;

import android.app.Activity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.content.IntentFilter;

import android.net.wifi.WifiInfo;

import android.net.wifi.WifiManager;

import android.os.Bundle;

import android.os.Handler;

import android.util.Log;

import android.view.Menu;

import android.widget.ImageButton;

import android.widget.TextView;

public class WifiExample extends Activity {

private final String TAG = "WifiExample";

private IntentFilter      mWifiIntentFilter;

private BroadcastReceiver mWifiIntentReceiver;

private ImageButton       mIconWifi;

private TextView          mLabelWifi;

private Handler           mHandler;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_wifi_example);

mIconWifi  = (ImageButton)findViewById(R.id.Icon_WifiStatus);

mLabelWifi = (TextView)findViewById(R.id.Label_WifiDetail);

mWifiIntentFilter = new IntentFilter();

mWifiIntentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);

mWifiIntentReceiver = new mWifiIntentReceiver();

registerReceiver(mWifiIntentReceiver, mWifiIntentFilter);

mHandler = new Handler();

mHandler.post(new TimerProcess());

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_wifi_example, menu);

return true;

}

private class TimerProcess implements Runnable{

public void run() {

showWIFIDetail();

mHandler.postDelayed(this, 500);

}

}

public void showWIFIDetail()

{

WifiInfo info = ((WifiManager)getSystemService(WIFI_SERVICE)).getConnectionInfo();

mIconWifi.setImageLevel(Math.abs(info.getRssi()));

/*

info.getBSSID();      获取BSSID地址。

info.getSSID();       获取SSID地址。  需要连接网络的ID

info.getIpAddress();  获取IP地址。4字节Int, XXX.XXX.XXX.XXX 每个XXX为一个字节

info.getMacAddress(); 获取MAC地址。

info.getNetworkId();  获取网络ID。

info.getLinkSpeed();  获取连接速度,可以让用户获知这一信息。

info.getRssi();       获取RSSI,RSSI就是接受信号强度指示

*/

int Ip = info.getIpAddress();

String strIp = "" + (Ip & 0xFF) + "." + ((Ip >> 8) & 0xFF) + "." + ((Ip >> 16) & 0xFF) + "." + ((Ip >> 24) & 0xFF);

mLabelWifi.setText("BSSID : " + info.getBSSID() + "/nSSID : " + info.getSSID() +

"/nIpAddress : " + strIp + "/nMacAddress : " + info.getMacAddress() +

"/nNetworkId : " + info.getNetworkId() + "/nLinkSpeed : " + info.getLinkSpeed() + "Mbps" +

"/nRssi : " + info.getRssi());

info.getIpAddress();

}

private class mWifiIntentReceiver extends BroadcastReceiver{

public void onReceive(Context context, Intent intent) {

WifiInfo info = ((WifiManager)getSystemService(WIFI_SERVICE)).getConnectionInfo();

mIconWifi.setImageLevel(Math.abs(info.getRssi()));

/*

WifiManager.WIFI_STATE_DISABLING   正在停止

WifiManager.WIFI_STATE_DISABLED    已停止

WifiManager.WIFI_STATE_ENABLING    正在打开

WifiManager.WIFI_STATE_ENABLED     已开启

WifiManager.WIFI_STATE_UNKNOWN     未知

*/

switch (intent.getIntExtra("wifi_state", 0)) {

case WifiManager.WIFI_STATE_DISABLING:

Log.d(TAG, "WIFI STATUS : WIFI_STATE_DISABLING");

break;

case WifiManager.WIFI_STATE_DISABLED:

Log.d(TAG, "WIFI STATUS : WIFI_STATE_DISABLED");

break;

case WifiManager.WIFI_STATE_ENABLING:

Log.d(TAG, "WIFI STATUS : WIFI_STATE_ENABLING");

break;

case WifiManager.WIFI_STATE_ENABLED:

Log.d(TAG, "WIFI STATUS : WIFI_STATE_ENABLED");

break;

case WifiManager.WIFI_STATE_UNKNOWN:

Log.d(TAG, "WIFI STATUS : WIFI_STATE_UNKNOWN");

break;

}

}

}

}

4.最后在AndroidManifest.xml增加获取WIFI权限的支持

android 查询wifi信息的类,Android 获取wifi信息相关推荐

  1. 【Android App】利用腾讯地图获取地点信息和规划导航线路讲解及实战(附源码和演示视频 超详细必看)

    需要源码请点赞关注收藏后评论区留言~~~ 一.获取地点信息 至于如何集成腾讯地图和调用腾讯地图接口此处不再赘述,有需要请参见我之前的博客 腾讯地图用来搜索POI地点的工具是TencentSearch, ...

  2. Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法

    转载时注明地址:http://blog.csdn.net/xiaanming/article/details/9344703 我们开发Android应用的时候,当出现Crash的时候,系统弹出一个警告 ...

  3. Android中基于心知天气API获取天气信息

    Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...

  4. java wifi信息_Java中如何获取WiFi的名称和信息?

    =Start= 缘由: 收集整理一下在Java中如何获取WiFi相关信息的方法,方便需要的时候使用. 正文: 参考解答: 简单来说就是:Java中没有原生的类来实现这个功能(不像获取IP或主机名时还有 ...

  5. [获取手机信息]-通过 ADB 命令获取手机信息

    ################################################## 目录 通过 ADB 命令获取手机信息 ADB 常用查看命令 使用 -l 查看设备详细信息 查看机型 ...

  6. 获取浏览信息 php,PHP如何获取浏览器信息

    在使用PHP获取浏览器信息时,通常有两种方式: 第一种是:使用$_SERVER[HTTP_USER_AGENT]选项 此方式获取的是格式不规则的数据,如  Mozilla/4.0 (compatibl ...

  7. python爬虫获取服务器信息,通过python自动化获取服务器信息,并写入到excel(示例代码)...

    简介这篇文章主要介绍了通过python自动化获取服务器信息,并写入到excel(示例代码)以及相关的经验技巧,文章约943字,浏览量170,点赞数4,值得参考! 博主目前在电信外包工作,比较坑,因为涉 ...

  8. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  9. Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】

    2020-04-02-星期四[源码可私聊我,QQ:386335886] 写篇文章不容易,点个赞再走吧,求求了~  目   录 网络访问-思维导图 玩Android网站---查看登录Cookie 适配器 ...

最新文章

  1. linux shell 算术运算{expr、bc、dc、(( ))和[ ]}
  2. ASP.NET MVC IOC 之AutoFac攻略
  3. .net访问PostgreSQL数据库发生“找不到函数名”的问题追踪
  4. unable to launch什么意思_都表示太...以至于,so … that…?与too… to …有着明显区别...
  5. php string slice,substring()与str.slice()区别
  6. 跳槽,你的工作经验货真价实吗?
  7. Win10 独立音量调整
  8. linux下安装使用dig命令
  9. 为什么在项目中要慎用RxBus
  10. 百度诉被奇虎科技有限公司(以下简称北京奇虎公司)、奇虎三六零软件(北京)有限公司(以下简称奇虎三六零公司)不正当竞争纠纷一案
  11. 计算机cpu intel,intel CPU后面带F是什么意思?Intel处理器后面带“F”含义详解
  12. arm 驱动基础:点亮led_firt
  13. 概括几种项目类型使用的技术路线
  14. Linux常用命令——screen命令
  15. Hutool进行DES加解密
  16. r语言员工离职_使用R机器学习进行员工离职预测系列(一)
  17. Tita绩效宝:通过组织透明度提高绩效
  18. Vue3.0由单页面应用改为多页面开发
  19. Dapper - 微型 ORM 之王 (C#.NET)
  20. 印象中的tcp?你可能一直都理解错了|开发者的必备技能

热门文章

  1. linux串口数据异常,linux串口知识深入--收到数据异常问题处理
  2. java的foeachr循环_for循环和Dowhile循环的应用
  3. Java中用JS那些_java web中javascript主要用哪些?
  4. c 语言输出后不关闭_穿书+娱乐圈 |再不跑路就要被迫C位出道了花瓶女配和影帝组CP后豪门娇美人是爽文剧本...
  5. 2018java多线程面试题_2018年最全Java面试通关秘籍汇总集!
  6. 知识图谱能否拯救NLP的未来?
  7. python的环境变量设置
  8. Android官方开发文档Training系列课程中文版:数据存储之键值对序列存储
  9. 软工 课堂作业:选出一个整数组中最大子数组
  10. Linux下grub.cnf详解