设为首页 收藏本站
查看: 628|回复: 0

Windows Phone 7(WP7)开发 获取网络状态

[复制链接]

尚未签到

发表于 2015-5-8 11:33:17 | 显示全部楼层 |阅读模式
  一、判断是否有网络数据连接:
  最基本的网络状态判断,如果没有网络连接,一切操作都进行不下去啦。



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.iyunv.com/vistach/archive/2012/02/09/Windows_Phone_WP7_Develop_NetworkInterface_3G_WCDMA_GSM_WiFi.html
  )

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64951-1-1.html 上篇帖子: 体验新一代Windows CE: Windows Embedded Compact 7 下篇帖子: Windows Phone 7 时钟实例编程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表