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
分类:
Android
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球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 分享到微信朋友圈