android 查询wifi信息的类,Android 获取wifi信息
在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信息相关推荐
- 【Android App】利用腾讯地图获取地点信息和规划导航线路讲解及实战(附源码和演示视频 超详细必看)
需要源码请点赞关注收藏后评论区留言~~~ 一.获取地点信息 至于如何集成腾讯地图和调用腾讯地图接口此处不再赘述,有需要请参见我之前的博客 腾讯地图用来搜索POI地点的工具是TencentSearch, ...
- Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法
转载时注明地址:http://blog.csdn.net/xiaanming/article/details/9344703 我们开发Android应用的时候,当出现Crash的时候,系统弹出一个警告 ...
- Android中基于心知天气API获取天气信息
Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...
- java wifi信息_Java中如何获取WiFi的名称和信息?
=Start= 缘由: 收集整理一下在Java中如何获取WiFi相关信息的方法,方便需要的时候使用. 正文: 参考解答: 简单来说就是:Java中没有原生的类来实现这个功能(不像获取IP或主机名时还有 ...
- [获取手机信息]-通过 ADB 命令获取手机信息
################################################## 目录 通过 ADB 命令获取手机信息 ADB 常用查看命令 使用 -l 查看设备详细信息 查看机型 ...
- 获取浏览信息 php,PHP如何获取浏览器信息
在使用PHP获取浏览器信息时,通常有两种方式: 第一种是:使用$_SERVER[HTTP_USER_AGENT]选项 此方式获取的是格式不规则的数据,如 Mozilla/4.0 (compatibl ...
- python爬虫获取服务器信息,通过python自动化获取服务器信息,并写入到excel(示例代码)...
简介这篇文章主要介绍了通过python自动化获取服务器信息,并写入到excel(示例代码)以及相关的经验技巧,文章约943字,浏览量170,点赞数4,值得参考! 博主目前在电信外包工作,比较坑,因为涉 ...
- Android中怎样在工具类中获取Context对象
场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...
- Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】
2020-04-02-星期四[源码可私聊我,QQ:386335886] 写篇文章不容易,点个赞再走吧,求求了~ 目 录 网络访问-思维导图 玩Android网站---查看登录Cookie 适配器 ...
最新文章
- linux shell 算术运算{expr、bc、dc、(( ))和[ ]}
- ASP.NET MVC IOC 之AutoFac攻略
- .net访问PostgreSQL数据库发生“找不到函数名”的问题追踪
- unable to launch什么意思_都表示太...以至于,so … that…?与too… to …有着明显区别...
- php string slice,substring()与str.slice()区别
- 跳槽,你的工作经验货真价实吗?
- Win10 独立音量调整
- linux下安装使用dig命令
- 为什么在项目中要慎用RxBus
- 百度诉被奇虎科技有限公司(以下简称北京奇虎公司)、奇虎三六零软件(北京)有限公司(以下简称奇虎三六零公司)不正当竞争纠纷一案
- 计算机cpu intel,intel CPU后面带F是什么意思?Intel处理器后面带“F”含义详解
- arm 驱动基础:点亮led_firt
- 概括几种项目类型使用的技术路线
- Linux常用命令——screen命令
- Hutool进行DES加解密
- r语言员工离职_使用R机器学习进行员工离职预测系列(一)
- Tita绩效宝:通过组织透明度提高绩效
- Vue3.0由单页面应用改为多页面开发
- Dapper - 微型 ORM 之王 (C#.NET)
- 印象中的tcp?你可能一直都理解错了|开发者的必备技能
热门文章
- linux串口数据异常,linux串口知识深入--收到数据异常问题处理
- java的foeachr循环_for循环和Dowhile循环的应用
- Java中用JS那些_java web中javascript主要用哪些?
- c 语言输出后不关闭_穿书+娱乐圈 |再不跑路就要被迫C位出道了花瓶女配和影帝组CP后豪门娇美人是爽文剧本...
- 2018java多线程面试题_2018年最全Java面试通关秘籍汇总集!
- 知识图谱能否拯救NLP的未来?
- python的环境变量设置
- Android官方开发文档Training系列课程中文版:数据存储之键值对序列存储
- 软工 课堂作业:选出一个整数组中最大子数组
- Linux下grub.cnf详解