一、判断是否有网络数据连接:

最基本的网络状态判断,如果没有网络连接,一切操作都进行不下去啦。

 Microsoft.Phone.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()

二、判断网络类型(GSM/CDMA/WIFI/Ethernet):

在一般的应用程序中,需要知道的网络状态也就三种:无网络、WIFI/Ethernet、手机网络。

三者的区别就是:

1、“无网络”:不解释,大家都懂的。

2、“WiFi/Ethernet”:一般情况下速度比手机网络快,而且不计流量,更适合进行较大数据的操作,如下载个离线地图什么的。

3、“手机网络”:2G、3G网络都算作这种吧。优点就是方便,只要手机和运营商支持,只要有信号,就有网络。缺点就是费用较高,而且速度一般情况下不如上面那种快。

我们做应用应该从用户的角度考虑,根据用户的网络环境,提供适当的服务。这就需要在应用中判断网络状态然后采取适当的操作。

        public static string GetNetStates()        {var info = Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType;

switch (info)            {case NetworkInterfaceType.MobileBroadbandCdma:return "CDMA";case NetworkInterfaceType.MobileBroadbandGsm:return "CSM";case NetworkInterfaceType.Wireless80211:return "WiFi";case NetworkInterfaceType.Ethernet:return "Ethernet";case NetworkInterfaceType.None:return "None";default:return "Other";            }           }

  

三、更细致的判断网络类型(3G/2G/WIFI/Ethernet):

在3G时代的今天,有的时候我们还需要知道用户的手机网络是3G的或是2G的。(这个方法是在MSDN论坛上看到的)

public static string NetName { get; set; }public static void GetNetName()        {            DeviceNetworkInformation.ResolveHostNameAsync(new DnsEndPoint("www.baidu.com", 80),new NameResolutionCallback(handle =>                {                    NetworkInterfaceInfo info = handle.NetworkInterface;if (info != null)                    {switch (info.InterfaceType)                        {case NetworkInterfaceType.Ethernet:                                NetName = "Ethernet";break;case NetworkInterfaceType.MobileBroadbandCdma:case NetworkInterfaceType.MobileBroadbandGsm:switch (info.InterfaceSubtype)                                {case NetworkInterfaceSubType.Cellular_3G:case NetworkInterfaceSubType.Cellular_EVDO:case NetworkInterfaceSubType.Cellular_EVDV:case NetworkInterfaceSubType.Cellular_HSPA:                                        NetName = "3G";break;case NetworkInterfaceSubType.Cellular_GPRS:case NetworkInterfaceSubType.Cellular_EDGE:case NetworkInterfaceSubType.Cellular_1XRTT:                                        NetName = "2G";break;default:                                        NetName = "None";break;                                }break;case NetworkInterfaceType.Wireless80211:                                NetName = "WiFi";break;default:                                NetName = "None";break;                        }                    }else                        NetName = "None";                }), null);        }

我的联通WCDMA测试时,网络状态为 NetworkInterfaceSubType.Cellular_3G,个人猜测,WCDMA的3.5G版本会出现NetworkInterfaceSubType.Cellular_HSPA。

至于TD-SCDMA,和CDMA2000,由于目前没有设备,无法测试。

欢迎转载,转载请注明出处:

锦燕云:

http://www.cnblogs.com/vistach/archive/2012/02/09/Windows_Phone_WP7_Develop_NetworkInterface_3G_WCDMA_GSM_WiFi.html

转载于:https://www.cnblogs.com/vistach/archive/2012/02/09/Windows_Phone_WP7_Develop_NetworkInterface_3G_WCDMA_GSM_WiFi.html

Windows Phone 7(WP7)开发 获取网络状态相关推荐

  1. iOS 获取网络状态

    在iOS开发者,获取网络状态比较常用 -(NSString *)getNetWorkStates{UIApplication *app = [UIApplication sharedApplicati ...

  2. 微信小程序 --- 获取网络状态

    获取网络状态:wx.getNetworkType btnclick:function(){wx.getNetworkType({success:function(res){console.log(re ...

  3. iOS13 获取StatusBar并且获取网络状态

    获取StatusBar 项目中通过StatusBar来获取手机当前状态,但是在iOS 13中便获取不到了,调试了一下发现是UIApplication无法获取到statusBar. UIApplicat ...

  4. Android获取网络状态

    前言:在开发安卓移动端时,几乎每一个app都需要连接网络,因此,对设备的网络状态检测是很有必要的!比如:检测当前网络是否可用,当前可用的网络是属于WIFI还是MOBILE等等. 实现步骤流程: 1 . ...

  5. Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理

    在Android开发中,许多功能需要网络连接,所以在开发过程中需要进行手机网络的检测.而每做一个App,就要进行检测,那么我直接将检测网络状态的功能封装成一个类. 检测网络状态所需要的Api: Con ...

  6. 微信小程序获取网络状态

    wx.getNetworkType(Object object) 获取网络类型 wx.getNetworkType({success (res) {const networkType = res.ne ...

  7. uniapp 获取网络状态_uni-app 获取网络状态

    uni.getNetworkType(OBJECT) 获取网络类型. OBJECT 参数说明 参数名 类型 必填 说明 success Function 是 接口调用成功,返回网络类型 network ...

  8. iOS 获取网络状态(包含iphone X /XR/Xs)

    使用苹果自带的:Reachability 定义网络类别枚举类型 // 网络类别枚举类型 typedef NS_ENUM(NSUInteger, NetWorkType) {NetWorkTypeNon ...

  9. iOS开发 - 检测网络状态(WIFI、2G/3G/4G)

    检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 让用户了解自己的网络状态,防止一些误会(比如怪应用无能) 根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI ...

  10. Windows Phone 8.1 开发实例 网络编程 天气预报

    首先感谢林政老师的博客,给了我很大的指导. 准备工作 我的开发环境: - Visual Studio 2013(With Update 4) - Windows Phone 8.1 - Windows ...

最新文章

  1. 最经典的计算机网络新书推荐--计算机网络(第5版)Tanenbaum著中文版上市
  2. 综合应用题:投票程序(知识点:对象,数组,循环,流,工具类的应用)
  3. 赞!《Python面试大全》PDF版来啦!
  4. hibernate数据的三种存在状态(只与事务有关)
  5. [css] 使用css实现一个loading的效果
  6. 动态插入图片到 svg 中
  7. DoIP(三)—— 通信流程
  8. android studio jdy08,JDY-08蓝牙4.0模块+V3.3手册+.pdf
  9. 树莓派入门(六)之控制舵机、伺服电机的驱动代码
  10. 【UI设计】零基础带你入门UI设计
  11. 今日科技联播:滴滴5000亿上市计划或受影响,高德地图暂时下线顺风车业务
  12. 王煜全老师谈SNS创业
  13. 【夜读】幸福的人,都拥有这5种好心态
  14. unity中怎么让物体位置复位_(转)Unity3D中移动物体位置的几种方法
  15. 在vue中禁止input框和textarea编辑的操作
  16. CSS实现“大于号”或“小于号”箭头
  17. addEventListener的常用事件
  18. linux pscp 上传_Pscp实现Linux文件传输
  19. VMware16以及Ubuntu1.6的下载安装配置详细教程
  20. 计算机毕业设计之java+springboot基于vue的校园交友网站

热门文章

  1. XML+Application来编写计数器(二)
  2. Homebrew太慢,如何挂代理加速
  3. CSS基础part1
  4. 黑马程序员_Java学习日记num8
  5. C/C++底层实现指定磁盘只读
  6. ASP.NET偷懒大法三 (利用Attribute特性简化多查询条件拼接sql语句的麻烦)
  7. fd抓包数据类型_fiddler——抓包中的王者
  8. 2017年12月24日23:46:07
  9. iOS - NSURLSession 网络请求
  10. ubuntu 下mysql 不显示当前的数据库名解决方法