posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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

1
2
3
4
5
6
7
<!-- 联网,网络状态 -->
    <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" />

注册网络变化接收通知

复制代码
/**
     * 注册网络变化接收通知
     * */
    public static void regNetChageRecever(Context context){
        NetChangeReceiver receiver = new NetChangeReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        context.registerReceiver(receiver, intentFilter);
    }
复制代码

Recever

复制代码
package com.jay.common;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 * 接收 网络状态变化 发出的通知
 * */
public class NetChangeReceiver extends BroadcastReceiver {

    @SuppressLint("UnsafeProtectedBroadcastReceiver")
    @Override
    public void onReceive(Context context, Intent intent) {
        try {
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()) {
                //有网
                String res = "";
                Activity activity = BaseForm.curActivity();
                activity.runOnUiThread(()->{
//                    activity.findViewById(R.id.txtDes);
                });
            } else {
                //无网
            }
        } catch (Exception e) {
            //ignore
        }
    }
}
复制代码

来源:https://blog.csdn.net/chongchi_wxcc/article/details/126941037

 

posted on   邢帅杰  阅读(301)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2016-03-08 sqlserver字符串拆分(split)方法汇总
2016-03-08 使用jsonp跨域发送请求
2016-03-08 C#中发送邮件,包含Html代码 CDO.Message
2016-03-08 CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板
2016-03-08 分享到微信朋友圈
点击右上角即可分享
微信分享提示