在Windows Phone 開發中有時候需要擷取裝置目前連接配接網絡的類型,是Wifi,還是2G,3G,或者4G,SDK中提供擷取網絡類型的API(Microsoft.Phone.Net.NetworkInformation. DeviceNetworkInformation),通過此API我們可以友善的擷取相關資訊。但是此API是基于異步回調的方式擷取的,如果需要同步擷取,那麼就需要做一些特殊的處理。
以下代碼定義網絡類型資訊類,用于存儲擷取的網絡類型資訊。
以下代碼将從系統NetworkInterfaceInfo解析擷取網絡類型資訊并寫入到上面構造的NetworkInfo類中。
關于NetworkInterfaceInfo. NetworkInterfaceSubType的各種網絡類型的說明給出以下表格:
網絡類型
說明
Unknown
沒有有關網絡接口類型的其他資訊。
Cellular_GPRS
使用通用分組無線業務 (General Packet Radio Service, GPRS) 蜂窩技術的網絡接口。這是 2.5G 技術。
Cellular_1XRTT
使用無線傳輸技術 (Radio Transmission Technology, 1xRTT) 蜂窩技術的網絡接口。這是 2.5G 技術。
Cellular_EVDO
Evolution Data Only (EV-DO) 蜂窩技術的網絡接口。這是 3G 技術。
Cellular_EDGE
使用增強型資料速率 GSM 演進 (Enhanced Data rates for GSM Evolution, EDGE) 蜂窩技術的網絡接口。這是2.5G 技術。
Cellular_3G
使用第三代 (3G) 蜂窩技術的網絡接口。
Cellular_HSPA
使用高速下行分組接入 (High-Speed Downlink Packet Access, HSPA) 蜂窩技術的網絡接口。這是 3.5G 技術。
Cellular_EVDV
使用資料和語音演進 (Evolution Data and Voice, EV-DV) 蜂窩技術的網絡接口。這是 3G 技術。
Desktop_PassThru
桌面 pass- through 網絡接口。
WiFi
使用無線技術 (802.11) 的網絡接口。
Cellular_LTE
使用長期進化 (Long Term Evolution,LTE) 蜂窩技術的網絡接口。這是 4G 技術。
Cellular_EHRPD
使用增強型高速率資料包 (Enhanced High Rate Packet Data,EHRPD) 蜂窩技術的網絡接口。這是 4G 技術。
下面給出通過回調的方式擷取網絡類型資訊的實作方式。
下面給出如何将基于異步回調的方式轉換為同步方式來擷取網絡類型資訊,此種轉換方式不僅僅隻用于此處,對于所有的基于異步回調的處理都可以安裝此種處理來轉換成同步擷取。執行個體代碼如下: