首页 > 其他分享 >Android判断联网状态,Wifi信号强度

Android判断联网状态,Wifi信号强度

时间:2023-03-08 09:13:36浏览次数:35  
标签:context ssid Wifi 信号强度 Context import Android net wifiResultInfo

code

package com.idogfooding.lawsonsot.common;

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

import com.idogfooding.lawsonsot.model.WifiResultInfo;
/**
 * 
 * */
public class WiFiUtil {
    /**
     * 判断是否联网
     */
    public static boolean checkConnectNetwork(Context context) {
        ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo net = conn.getActiveNetworkInfo();
        if (net != null && net.isConnected()) {
            return true;
        }
        return false;
    }

    /**
     * 获取已连接的wifi
     */
    public static WifiResultInfo getConnectedWifi(Context context) {
//        Context context = SysApplication.getContext();
        WifiResultInfo wifiResultInfo = null;
        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();

        if (wifiInfo != null) {
            wifiResultInfo = new WifiResultInfo();
            //名称
            String ssid = wifiInfo.getSSID();
            //信号强度,得到的值是一个0到-100的区间值,是一个int型数据
            int rssi = wifiInfo.getRssi();

            if(ssid.startsWith("\"") && ssid.endsWith("\""))
            {
                ssid = ssid.substring(1, ssid.length() - 1);
            }
            //信号强度等级,根据强度值,分为6个等级,5最大,表示强度最高,0表示没连Wifi。
            int level = WifiManager.calculateSignalLevel(rssi, 6);
            String supplicantState = wifiInfo.getSupplicantState().toString();

            wifiResultInfo.setWifiLevel(level);
            wifiResultInfo.setRssi(rssi);
            wifiResultInfo.setSsid(ssid);
            wifiResultInfo.setSupplicantState(supplicantState);
        }
        return wifiResultInfo;
    }
}

 AndroidManifest.xml

<!-- 联网,网络状态 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- WIFI改变,WIFI状态 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 申请定位权限 否则的话,wifiManager.getScanResults()获取不到任何的数据 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  

标签:context,ssid,Wifi,信号强度,Context,import,Android,net,wifiResultInfo
From: https://www.cnblogs.com/xsj1989/p/17190723.html

相关文章

  • android stdio如何迁移device
    1.在C:\Users\(名字)\.android\avd文件中找到虚拟机文件复制且删除(由于我已经迁移完毕,只剩下一个.ini文件)  类似于这样的虚拟机文件。  2.将它复制或迁移到你希......
  • Android制作简单的登录界面
    先编写一个简易的登录界面<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_he......
  • Android学习
    UIAndroidUI组件层次结构View背景:android:background="@mipmap/bg"android:background="#FF0000"内边距:android:padding="16dp"android:padding="@d......
  • 【Android逆向】算法还原2
    这题比较简单1.app-release.apk安装至手机提示需要输入账号和密码2.jadx打开看看publicnativebooleancheck(byte[]bArr,byte[]bArr2);static{......
  • Android 图片处理部分知识点说明
    本文讲解在Android的日常开发中,针对图片的几个小tips。图片的mimeType在Android系统中,图片的mimeType系统默认是根据后缀名判断。比如pic.jpg的mimeType就是......
  • Android 简单学习开源换肤框架(ThemeSkinning)
    Android简单学习开源换肤框架(ThemeSkinning)GitHub地址ThemeSkinning找到初始化View的入口并替换自定义的入口通常我们都是通过setContentView(intID)把View加载到我......
  • Android分区
    1.查看分区数catproc/partitions这里的blocks和高通平台的分区表partition.xml是对应的 ... <partitionlabel="modem"size_in_kb="90112"type="EBD0A0A2-B9E5......
  • 【android】android-检测耳机的插入和拔出动作
    在android系统中,检测耳机的插入和拔出,也是通过广播实现的,可以建立一个BroadcastReceiver监听"android.intent.action.HEADSET_PLUG"这个Intent。在这个Intent中包含以......
  • 【android 】android AlarmManager 详解
    在开发互联网应用时候,我们常常要使用心跳来保证客户端与服务器的连接。怎么完成心跳很关键,在说道客户端心跳功能时,如果使用Timer或者专门开起一个线程来做心跳的工作,会浪费......
  • WiFi probe request/response
    proberequest主动扫描通过发送proberequest帧进行STA会在每个信道上发送proberequest进行扫描。proberequest会向广播地址FF:FF:FF:FF:FF:FF发送。发送的STA可以指......