Windows ストア アプリでインターネット接続が利用可能かどうかを確認するにはどうすればよいですか?
8829 次
3 に答える
14
NetworkInformation
クラスを使用してそれを検出できます。このサンプルコードは、接続ステータスが変更されるたびに呼び出されるイベントハンドラーを追加します。
NetworkInformation.NetworkStatusChanged +=
NetworkInformation_NetworkStatusChanged; // Listen to connectivity changes
static void NetworkInformation_NetworkStatusChanged(object sender)
{
ConnectionProfile profile =
NetworkInformation.GetInternetConnectionProfile();
if ((profile != null) && profile.GetNetworkConnectivityLevel() >=
NetworkConnectivityLevel.InternetAccess)
{
// We have Internet, all is golden
}
}
もちろん、変更時に通知を受け取るのではなく、一度だけ検出したい場合は、変更イベントをリッスンせずに、上からチェックを行うことができます。
于 2013-02-16T08:59:44.290 に答える
2
using Windows.Networking.Connectivity;
public static bool IsInternetConnected()
{
ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile();
bool internet = (connections != null) &&
(connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess);
return internet;
}
于 2014-04-13T04:23:33.077 に答える
-5
それを行うために非同期関数を書きました:
private void myPingCompletedCallback(object sender, PingCompletedEventArgs e)
{
if (e.Cancelled)
return;
if (e.Error != null)
return;
if (e.Reply.Status == IPStatus.Success)
{
//ok connected to internet, do something
}
}
private void checkInternet()
{
Ping myPing = new Ping();
myPing.PingCompleted += new PingCompletedEventHandler(myPingCompletedCallback);
byte[] buffer = new byte[32];
int timeout = 1000;
PingOptions options = new PingOptions(64, true);
try
{
myPing.SendAsync("google.com", timeout, buffer, options);
}
catch
{
}
}
于 2014-02-15T09:46:50.267 に答える