2014/10/27

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

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

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

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

總之 memo 一下做法



 using Windows.Networking.Connectivity;

private bool CheckInternetConnection()
{
 bool IsNetworkExist = true;
 ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();

 if (profile == null 
  ||profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.LocalAccess 
  || profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.None)
 {
  this.IsNetworkNotExistHandler.Invoke(this, new EventArgs());
  IsNetworkExist = false;
 }
 return IsNetworkExist;
}

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

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

則會是 NetworkConnectivityLevel.LocalAccess

至於

 IsNetworkNotExistHandler.Invoke 

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

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

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

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








沒有留言:

張貼留言