インターネットチェックのために、以下のコード行を書きました。
bool isAvailable = NetworkInterface.GetIsNetworkAvailable();
if (isAvailable == true)
{
}
ネットが利用できない場合、上記の行は常に true を返します。インターネット接続を確認する方法を教えてください。
インターネットチェックのために、以下のコード行を書きました。
bool isAvailable = NetworkInterface.GetIsNetworkAvailable();
if (isAvailable == true)
{
}
ネットが利用できない場合、上記の行は常に true を返します。インターネット接続を確認する方法を教えてください。
NetworkInterfaceTypeを確認してください。インターネットが利用可能な場合は、「なし」以外にする必要があります
return (Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType
!= Microsoft.Phone.Net.NetworkInformation.NetworkInterfaceType.None);
vjsrinathによる参照回答:https : //stackoverflow.com/questions/8341169/how-to-check-internetconnection-in-wp7
お役に立てれば。
あなたも試すことができます、
bool isAvailable = Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.IsNetworkAvailable;
Always check this in a thread, it takes some time
internal static bool IsNetworkAvailable()
{
bool _bhasNetworkConnection = false;
try
{
_bhasNetworkConnection = (NetworkInterface.NetworkInterfaceType != NetworkInterfaceType.None);
}
catch
{
_bhasNetworkConnection = false;
}
return _bhasNetworkConnection;
}
UI スレッドのチェックNetworkInterface.NetworkInterfaceType
インは、ブロッキング コールであるため「危険」です。この呼び出しには最大 20 秒かかる可能性があります...
非ブロッキング呼び出しを行うには、次のメソッドを使用します。
public static void IsConnected(Action<bool> completed)
{
ThreadPool.QueueUserWorkItem(o =>
{
var type = NetworkInterface.NetworkInterfaceType;
completed(type != NetworkInterfaceType.None);
});
}
https://xp-dev.com/svn/mytoolkit/MyToolkit.Wp8/Networking/NetworkState.csを参照してください(私のプロジェクト ページから)
アクションで UI を変更したい場合はcompleted
、UI スレッドでロジックを実行する必要があります。例えば:
NetworkState.IsConnected(connected => {
if (connected)
{
Deployment.Current.Dispatcher.BeginInvoke(delegate {
// TODO add your UI logic
});
}
});
多くの接続チェックが必要な場合NetworkStateTracker
は、私のプロジェクトである をチェックしてください。
https://xp-dev.com/svn/mytoolkit/MyToolkit.Wp8/Networking/NetworkStateTracker.cs