常常我們在開發Windows Store App時會使用網路來讀取網頁的資料或其他開放平台的Json、Xml資料,我們預設的情況都是網路通順的狀態,那當然資料會正常的讀取,但是在沒有網路的情況下我們仍對網路進行存取就有可能會丟出Exception例外狀況,譬如小弟在無網路情況下仍使用HttpClient讀取網路上的資源,就會丟出Excepton的例外。
本文將引導您開發Windows store App時在C#中偵測目前網路的可用狀況。
常常我們在開發Windows Store App時會使用網路來讀取網頁的資料或其他開放平台的Json、Xml資料,我們預設的情況都是網路通順的狀態,那當然資料會正常的讀取,但是在沒有網路的情況下我們仍對網路進行存取就有可能會丟出Exception例外狀況,譬如小弟在無網路情況下仍使用HttpClient讀取網路上的資源,就會丟出Excepton的例外。
本文將引導您開發Windows store App時在C#中偵測目前網路的可用狀況。
當然我們也可以使用Try{}catch{}的方式來避免掉程式整個掛掉,但是究竟是不是因為無網路狀態導致的Exception 就不得而知了,
說不定是其它狀況導致Exception,所以在這之前我們可以先判斷目前網路的可用情況,
若目前網路不可用的話可以提示使用者務必確實連接網路,若網路可用在進行下一步動作。
判斷網路是否可用的程式碼如下:
1: //取得網路是否可用
2: public static bool IsInternet()
3: {
4: ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile();
5: bool internet = connections != null && connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
6: return internet;
7: }
用法如下:
1: if (IsInternet())
2: {
3: //網路可用
4: }
5: else {
6: //網路不可用
7: }
如此一來便可以避免掉無網路情況的Exception 例外情況囉!!
Refrences : Quickstart: Retrieving network connection information
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。