Windows Phone 7(WP7)开发 获取网络状态
fmms
13年前
一、判断是否有网络数据连接:
最基本的网络状态判断,如果没有网络连接,一切操作都进行不下去啦。
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); }
(
欢迎转载,转载请注明出处:
锦燕云:
)