• 效果图

  • 目录结构

  • AndroidManifest.xml中加入权限声明

    <!-- wifi状态检测--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><!-- 网络状态检测 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  • 布局文件 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#ff111627"><ImageViewandroid:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:src="@drawable/wifi_0" /></RelativeLayout>
  • MainActivity.java
public class MainActivity extends AppCompatActivity {private ImageView mImageView;private Handler mHandler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what == 0) {checkWifiState();sendEmptyMessageDelayed(0, 2000);}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mImageView = (ImageView) findViewById(R.id.image);mHandler.sendEmptyMessageDelayed(0, 2000);}/*** 检查wifi是否处开连接状态* @return*/public boolean isWifiConnect() {ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mWifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);return mWifiInfo.isConnected();}/*** 检查wifi强弱并更改图标显示*/public void checkWifiState() {if (isWifiConnect()) {WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();int wifi = mWifiInfo.getRssi();//获取wifi信号强度if (wifi > -50 && wifi < 0) {//最强mImageView.setImageResource(R.drawable.wifi_2);} else if (wifi > -70 && wifi < -50) {//较强mImageView.setImageResource(R.drawable.wifi_1);} else if (wifi > -80 && wifi < -70) {//较弱mImageView.setImageResource(R.drawable.wifi_0);} else if (wifi > -100 && wifi < -80) {//微弱mImageView.setImageResource(R.drawable.wifi_0);}} else {//无连接mImageView.setImageResource(R.drawable.wifi_null);}}
}
  • 实现思路

    1. 判断是否是wifi连接,获取系统的服务getSystemService(Context.CONNECTIVITY_SERVICE),得到NetworkInfo对象,调用该对象的isConnected()方法。
    2. 检查wifi信号的强弱,获取WifiManager对象,得到WifiInfo对象,调用getRssi()方法获取wifi信号的强度。
    3. 使用Handler每隔2000毫秒检查wifi状态,更新状态图标。

Android wifi信号强弱检测相关推荐

  1. android信号强弱动画,Android自定义View展示Wifi信号强弱指示方法示例

    前言 最近因为工作的需要,要自定义展示Wifi信号强弱的需要,就通过利用系统广播的方式实现了一个自定义View--WifiStateView,下面话不多说了,感兴趣的朋友们一起来看看详细的介绍吧. 实 ...

  2. 无线信号强度解析及linux如何查看wifi信号强弱等

    dB dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log(甲功率/乙功率),如果采用两者的电压比计算 ...

  3. linux查看wifi网速,无线信号强度解析及linux如何查看wifi信号强弱等

    dBdB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log(甲功率/乙功率),如果采用两者的电压比计算, ...

  4. linux如何查看wifi信号强弱

    在linux中观察wifi信号强弱,可以通过dBm数值来判断. 现在来看这个所谓的dBm,数值范围在-XX~0之间.这个数越大,信号强度越高. -50dBm~0dBm范围内,恭喜你,你的信号已经好得很 ...

  5. wifi信号增强android,WiFi信号增强放大器app下载

    WiFi信号增强放大器是一款可以把无线wifi信号加强的手机软件,对于手机wifi信号差的用户来说是一大福利,它可以让您享受更快速稳定的WiFi网络,感兴趣的赶紧来下载吧. [产品介绍] 上网速度快慢 ...

  6. linux查看wifi信号命令_无线信号强度解析及linux如何查看wifi信号强弱等

    dBdB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log(甲功率/乙功率),如果采用两者的电压比计算, ...

  7. 安卓广播监听WiFi信号强弱的变化

    安卓开发过程中,有可能会遇到监听WiFi信号强弱的需求,比如:一些应用隐藏掉手机自带的状态栏,就需要自己实现监听WiFi信号的强弱,还有电池电量,还有时间的变化:废话不多说,下面看图,自己实现的状态栏 ...

  8. wifi信号增强android,WiFi信号增强大师APP

    WiFi信号增强大师APP是一款能够增强WiFi信号的软件,可以帮助用户快速提高WiFi的强度,获得更加流畅的网络连接体验,避免了因为信号弱而出行的网页打开慢.视频缓冲慢等问题,软件还为用户提供了网络 ...

  9. wifi信号增强android,wifi信号增强器下载安装

    wifi信号增强器软件简介 WiFi信号增强器是专注的增强Wi-Fi网络信号.释放内存.优化硬件,管理Wi-Fi账号的APP工具.软件通过优化手机设备.自动校准无线模块等原理,让在使用中的WiFi信号 ...

最新文章

  1. html兼容不同屏幕 代码,rem的正确使用姿势 -- 完美解决H5页面不同尺寸屏幕的适配问题...
  2. 人工智能带来的事业浪潮或将提前到来
  3. java银行柜面发起授权功能_java银行自主柜员程序设计
  4. JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
  5. Lambda、函数式接口、Stream 一次性全给你
  6. Silverlight 2 Beta 1学习资源
  7. 学习手册:浅析DDoS的攻击及防御
  8. TM1620中显存地址是偶数
  9. 微信消息记录导出到电脑
  10. 暴力破解带有密码的压缩文件
  11. QT ActiveX和读取EXCEL
  12. matlab日常(2)
  13. 苹果usb设置在哪里_努比亚红魔3红魔3S打开开发者选项和USB调试功能
  14. 查找算法的实现c语言,查找算法的实现(C语言版)
  15. EVE-NG打开Wireshark提示拒绝访问
  16. MTK平台闪光灯驱动分析
  17. js优化上传大图片显示问题(压缩图片展示)
  18. 实战!手把手带你复现1篇视频分类顶会论文
  19. 2018最新破解pycharm安装过程(含注册码)
  20. Minecraft 1.18.1、1.18.2模组开发 10.生物生成

热门文章

  1. 服务器网络协议是什么,介绍网络协议,什么是网络协议三要素?
  2. 如何让一张图片填满整个页面
  3. 残差(residual)
  4. 科学计算机程序 字表处理软件都是,计算机应用基础知识--1
  5. 【转】第5章 数据的描述性分析
  6. matlab 矩阵 列 逆序,matlab对矩阵/向量的常用操作(拼接矩阵、向量逆序、改变矩阵形状、求行阶梯形矩阵、提取矩阵的一部分等)...
  7. P2P网络中的节点发现
  8. C语言入门教程之一变量和常量
  9. SpringBoot2.0学习笔记 使用Actualor监控项目运行状态
  10. R语言独立性检验-基础