2014/10/27

[筆記] Windows 8 Store App 檢查有無網路連線存在

手上正在做一個用 Windows Store App 連接公司現有服務的工作

由於是連 WebService,接資料之前檢查網路連線是不是存在以避免程式噴掉是基本工作

找了好久才找到方法 (是 Google 功力不夠嗎? 0rz)

總之 memo 一下做法



  1. using Windows.Networking.Connectivity;
  2. private bool CheckInternetConnection()
  3. {
  4. bool IsNetworkExist = true;
  5. ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
  6. if (profile == null
  7. ||profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.LocalAccess
  8. || profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.None)
  9. {
  10. this.IsNetworkNotExistHandler.Invoke(this, new EventArgs());
  11. IsNetworkExist = false;
  12. }
  13. return IsNetworkExist;
  14. }

實際測試時發現網卡如果連線都沒接上時 ConnectionProfile 會取到 null

如果像是開發環境有裝 VMPlayer 掛上 VMware 的虛擬網卡時

則會是 NetworkConnectivityLevel.LocalAccess

至於

  1. IsNetworkNotExistHandler.Invoke

則是拿到的 App 規格說在檢查到沒有網路時要彈出訊息提示使用者沒有網路

但 Windows Store App 沒有方便的 Messagebox.Show() 可以用了

連彈個訊息都非常難搞的要 async /await...

想來想去似乎是直接拋事件出來比較快 0rz








沒有留言:

張貼留言