前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android WIFI是否连接,网络状态监测工具类

Android WIFI是否连接,网络状态监测工具类

作者头像
晨曦_LLW
发布2020-09-25 13:36:57
1.9K0
发布2020-09-25 13:36:57
举报

WIF工具类

示例代码

代码语言:javascript
复制
	//Wifi网络监测线程  然后在onCreate方法里面开启
    private Handler mHandlerWifi = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what == 0) {
            	//图标显示
                WifiStateUtils.checkWifiStateImg(MainActivity.this,ivWifiState);
                //文字显示
                tvWifiTx.setText(WifiStateUtils.checkWifiStateTxt(MainActivity.this));
                sendEmptyMessageDelayed(0, 1000);
            }
        }
    };

onCreate方法中调用

代码语言:javascript
复制
//每过一秒钟监测一次wifi的网络状态
mHandlerWifi.sendEmptyMessageDelayed(0, 1000);

工具类

代码语言:javascript
复制
package com.ypl.studytv.util;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.widget.ImageView;

import com.ypl.studytv.R;

/**
 * WIFI状态监测显示工具类
 * author llw
 */
public class WifiStateUtils {


    /**
     * 检查wifi是否处开连接状态
     * @return
     */
    public static boolean isWifiConnect(Context context) {
        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mWifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        return mWifiInfo.isConnected();
    }

    /**
     * 检查wifi强弱并更改图标显示  按wifi的监测来说,总共五级,这里只做四级,
     */
    public static void checkWifiStateImg(Context context,ImageView imageView) {
        if (isWifiConnect(context)) {
            WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();
            int wifi = mWifiInfo.getRssi();//获取wifi信号强度
            if (wifi > -50 && wifi < 0) {//最强  满格信号 4格
                imageView.setImageResource(R.mipmap.icon_wifi_4);
            } else if (wifi > -70 && wifi < -50) {//较强  3格
                imageView.setImageResource(R.mipmap.icon_wifi_3);
            } else if (wifi > -80 && wifi < -70) {//较弱  2格
                imageView.setImageResource(R.mipmap.icon_wifi_2);
            } else if (wifi > -100 && wifi < -80) {//微弱 1格
                imageView.setImageResource(R.mipmap.icon_wifi_1);
            }
        } else {
            //无连接
            imageView.setImageResource(R.mipmap.icon_wifi_none);// 在这里  0格  表示没有网络
        }
    }

    /**
     * 检查wifi强弱 文字
     */
    public static String checkWifiStateTxt(Context context){
        String data = null;
        if (isWifiConnect(context)) {
            WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();
            int wifi = mWifiInfo.getRssi();//获取wifi信号强度
            if (wifi > -50 && wifi < 0) {//最强  满格信号 4格
                data = "最强";
            } else if (wifi > -70 && wifi < -50) {//较强  3格
                data = "较强";
            } else if (wifi > -80 && wifi < -70) {//较弱  2格
                data = "较弱";
            } else if (wifi > -100 && wifi < -80) {//微弱 1格
                data = "微弱";
            }
        } else {
            //无连接
            data = "无信号";// 在这里  0格  表示没有网络
        }
        return data;
    }

    /**
     * 检查wifi强弱 文字
     */
    public static int checkWifiStateNum(Context context){
        int data = 0;
        if (isWifiConnect(context)) {
            WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo mWifiInfo = mWifiManager.getConnectionInfo();
            int wifi = mWifiInfo.getRssi();//获取wifi信号强度
            if (wifi > -50 && wifi < 0) {//最强  满格信号 4格
                data = 4;
            } else if (wifi > -70 && wifi < -50) {//较强  3格
                data = 3;
            } else if (wifi > -80 && wifi < -70) {//较弱  2格
                data = 2;
            } else if (wifi > -100 && wifi < -80) {//微弱 1格
                data = 1;
            }
        } else {
            //无连接
            data = 0;// 在这里  0格  表示没有网络
        }
        return data;
    }
}

希望能帮到您,山高水长,后会有期~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WIF工具类
    • 示例代码
      • 工具类
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档