原文: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追梦园

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

  1. 微信OAuth授权获取用户OpenId-JAVA(个人经验)【申明:来源于网络】

    微信OAuth授权获取用户OpenId-JAVA(个人经验)[申明:来源于网络] 地址:https://my.oschina.net/xshuai/blog/293458

  2. 通过jquery 获取用户当前所在的城市名称和IP地址

    下面这段JS代码是通过jquery 结合新浪IP地址库和QQip地址库接口获取用户当前所在的城市(省份)名称. 用户当前IP地址等数据.其中当前IP是通过 QQip地址库接口获取,其他数据都是通过 新 ...

  3. SharePoint 2013 开发——获取用户配置文件属性内容(User Profile)

    博客地址:http://blog.csdn.net/FoxDave 本篇我们应用SharePoint CSOM(.NET)来读取用户配置文件的信息,个人开始逐渐倾向于客户端模型,因为不用远程登录到 ...

  4. 微信开发获取用户OpenID

    第一次开发微信版网页,对最重要的获取微信OpenId,特此记录下来 1.首先得有appid和appsecret . public class WeiXin { public static string ...

  5. MVC 微信开发获取用户OpenID

    第一次开发微信版网页,对最重要的获取微信OpenId,特此记录下来 1.首先得有appid和appsecret . public class WeiXin { public static string ...

  6. PHP 微信公众号开发 - 获取用户信息

    项目微信公众号开发,记录获取用户微信号信息,和用户openid 1,登录微信公众平台 点击登录微信公众平台 2,获取公众号开发信息 登陆之后在 开发->基本配置 3,设置IP白名单 在这里添加服 ...

  7. Vue之获取用户当前所在省市

    今天小编给大家带来的是使用Vue获取用户所在城市,Vue是很强大的,给大家准备好现成的插件供大家调用,下面的Demo小编使用的是百度API. 首先我们从百度平台申请百度地图的秘钥,申请成功后我们将&l ...

  8. NX二次开发-获取当前part所在路径UF_PART_ask_part_name

    #include <uf.h> #include <uf_ui.h> #include <uf_part.h> #include <atlstr.h> ...

  9. 获取用户登陆所在的ip及获取所属信息

    package com.tcl.topsale.download.entity; public class GeoLocation { private String countryCode; priv ...

随机推荐

  1. ubuntu14.04下unix网络编程 环境的配置

    在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...

  2. Erlang 聊天室程序

    Erlang 聊天室程序( 一) Erlang 聊天室程序(二) 客户端的退出 Erlang 聊天室程序(三) 数据交换格式---json的decode Erlang 聊天室程序(四) 数据交换格式- ...

  3. 【codeforces 765B】Code obfuscation

    [题目链接]:http://codeforces.com/contest/765/problem/B [题意] 让你把每个变量都依次替换成a,b,c,-.d这些字母; 且要按顺序先用a再用b-.c.d ...

  4. CentOS 挂载iso文件配置yum源

    1.挂载iso 准备好centos的光盘镜像 挂载前的准备; mkdir -p /dev/centos mkdir -p  /mnt/local_yum 挂载 mount -o loop /opt/s ...

  5. Linux环境下搭建VPS服务

    说明 由于大部分VPN被封,FQ过程中无意间接触到了VPS(Virtual Private Server 虚拟专用服务器,可用于FQ),所以简单记录下VPS服务搭建流程. 此教程基于centos7,本 ...

  6. 左右Cwnd::Create()功能出现afxwin1.inl line:21错误的解决方案

    我最近在调试dll时刻,有一种模糊的断言错误,它是由主程序创建MFC 扩张DLL控制出口(从控制继承CWnd分类)时刻,呼叫Create()下列说法错误的功能: watermark/2/text/aH ...

  7. CentOS查看系统信息和资源使用已经升级系统的命令

    1.查看系统版本: 1)cat /etc/redhat-release   2)uname -a 2.查看资源使用: top 3.升级所有包同时也升级软件和系统内核: yum -y update

  8. 不安装 oracle的客户,就可以使用pl/sql访问远程oracle 数据库的方法

    免安装Oracle客户端使用PL/SQL连接Oracle      大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的.有没要想过不安装Oracle客户端直接连接Oracl ...

  9. 手动安装配置Android Studio

    官网下载Android Studio安装包后安装启动Android Studio,程序提示安装SDK,因为代理/FQ的原因,安装component失败,错误如下: Preparing "In ...

  10. myeclipse 8.6 software and workspace center is currently not available

    Myeclipse安装EGit插件的时候偏偏遇到software and workspace center is currently not available 不用打开myeclipse  conf ...