UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)

简介: 原文:UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)  UWP开发:获取用户当前所在的网络环境: 在uwp开发中,有时候,我们需要判断用户所在的网络,是WiFi,还是移动网络,给用户提醒,以免造成用户流量的损失,uwp中提供了用户所在网络的一些信息,但具体的类型,需要我们进一步判断处理。
原文: UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)

 

UWP开发:获取用户当前所在的网络环境:

在uwp开发中,有时候,我们需要判断用户所在的网络,是WiFi,还是移动网络,给用户提醒,以免造成用户流量的损失,uwp中提供了用户所在网络的一些信息,但具体的类型,需要我们进一步判断处理。如下
这个静态类我已经写好了,用的时候只需调用它的 GetConnectionGeneration()方法即可返回当前网络类型。可以检测到的类型有2G、3G、4G、WiFi、LAN等。最后,为大家奉上代码。同时,欢迎热爱UWP开发的同学加入群:193148992 交流探讨。

  public static class InternetStatus
    {
        static string None = "None";
        static string Unknown = "Unknown";
        static string IIG = "2G";
        static string IIIG = "3G";
        static string IVG = "4G";
        static string Wifi = "wifi";
        static string Lan = "Lan";


        public static string GetConnectionGeneration()
        {
            bool isConnected = false;

            string InternetType = null;
            ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
            if (profile == null)
            {
                InternetType = InternetStatus.None;
            }
            else
            {
                NetworkConnectivityLevel cl = profile.GetNetworkConnectivityLevel();
                isConnected = (cl != NetworkConnectivityLevel.None);
            }
            if (!isConnected)
            {
                return InternetStatus.None;
            }
            if (profile.IsWwanConnectionProfile)
            {
                if (profile.WwanConnectionProfileDetails == null)
                {
                    InternetType = InternetStatus.Unknown;
                }
                WwanDataClass connectionClass = profile.WwanConnectionProfileDetails.GetCurrentDataClass();
                switch (connectionClass)
                {
                    //2G
                    case WwanDataClass.Edge:
                    case WwanDataClass.Gprs:
                        InternetType = InternetStatus.IIG;
                        break;
                    //3G
                    case WwanDataClass.Cdma1xEvdo:
                    case WwanDataClass.Cdma1xEvdoRevA:
                    case WwanDataClass.Cdma1xEvdoRevB:
                    case WwanDataClass.Cdma1xEvdv:
                    case WwanDataClass.Cdma1xRtt:
                    case WwanDataClass.Cdma3xRtt:
                    case WwanDataClass.CdmaUmb:
                    case WwanDataClass.Umts:
                    case WwanDataClass.Hsdpa:
                    case WwanDataClass.Hsupa:
                        InternetType = InternetStatus.IIIG;
                        break;
                    //4G
                    case WwanDataClass.LteAdvanced:
                        InternetType = InternetStatus.IVG;
                        break;
                    //无网
                    case WwanDataClass.None:
                        InternetType = InternetStatus.Unknown;
                        break;
                    case WwanDataClass.Custom:
                    default:
                        InternetType = InternetStatus.Unknown;
                        break;
                }
            }
            else if (profile.IsWlanConnectionProfile)
            {
                InternetType = InternetStatus.Wifi;
            }
            else
            {
                ///不是Wifi也不是蜂窝数据判断为Lan
                InternetType = InternetStatus.Lan;
            }
            return InternetType;
        }
    }

——IT追梦园

目录
相关文章
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
2152 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
590 61
|
11月前
|
机器学习/深度学习 移动开发 编解码
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
260 1
|
11月前
Vite使用svg-企业级开发(支持本地svg和网络svg渲染)
本教程介绍如何在Vite项目中集成SVG图标插件。首先安装`vite-plugin-svg-icons`,配置插件指向SVG图标目录,并注册全局组件。接着创建SVG图标组件,支持内部图标与外部图片展示。通过简单配置,即可在页面中灵活使用各类SVG图标,提升开发效率。
539 0
|
12月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
595 0
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
监控 安全 网络协议
恶意软件无处逃!国内版“Manus”AiPy开发Windows沙箱工具,进程行为+网络传输层级监控! 头像 豪气的
NImplant.exe 是一款后渗透测试工具,可实现远程管理与持久化控制。其优点包括无文件技术、加密通信和插件扩展,但也存在被检测风险及配置复杂等问题。为深入分析其行为,我们基于 aipy 开发了 Windows 沙箱工具,针对桌面上的 NImplant.exe 进行多维度分析,涵盖进程行为、网络连接(如 TCP 请求、目标 IP/域名)、文件控制等,并生成传输层监控报告与沙箱截图。结果显示,aipy 工具响应迅速,报告清晰易读,满足分析需求。
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
599 12
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
476 0
|
虚拟化 网络虚拟化 Windows
导入虚拟机到Hyper-V环境时,理解并配置网络适配器设置是确保网络通信的关键
在Hyper-V环境中,正确配置虚拟机的网络适配器是确保其网络通信的关键。需先启用Hyper-V功能并创建虚拟交换机。接着,在Hyper-V管理器中选择目标虚拟机,添加或配置网络适配器,选择合适的虚拟交换机(外部、内部或私有),并根据需求配置VLAN、MAC地址等选项。最后,启动虚拟机并验证网络连接,确保其能正常访问外部网络、与主机及其他虚拟机通信。常见问题包括无法访问外部网络或获取IP地址,需检查虚拟交换机和适配器设置。