Windows Phone 7(WP7)開發 獲取網絡狀態
一、判斷是否有網絡數據連接:
最基本的網絡狀態判斷,如果沒有網絡連接,一切操作都進行不下去啦。
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); }
(
歡迎轉載,轉載請注明出處:
錦燕云:
)
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!