由於是連 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() 可以用了
連彈個訊息都
想來想去似乎是直接拋事件出來比較快 0rz
沒有留言:
張貼留言