我使用ConnectivityPlugin(CrossConnectivity.Current.IsConnected字段)检查Internet连接。问题在于它仅检查是否按下了Internet连接按钮。也就是说,如果我已连接到移动网络,但本身没有Internet(例如,来自运营商的问题),则针对这种情况的CrossConnectivity.Current.IsConnected字段将返回true(尽管没有连接)。问题:如何检查是否可以访问互联网?谢谢
答案 0 :(得分:0)
您可以使用Device.StartTimer(TimeSpan,Func)方法。
Device.StartTimer(TimeSpan.FromSeconds(1), () =>
{
//insert checking of internet connection
}
答案 1 :(得分:0)
假设“ google.com”始终处于运行状态:
if (CrossConnectivity.Current.IsConnected)
{
try {
Ping ping = new Ping();
String host = "google.com";
byte[] buffer = new byte[32];
int timeout = 1000;
PingOptions pingOptions = new PingOptions();
PingReply reply = ping.Send(host, timeout, buffer, pingOptions);
if (reply.Status == IPStatus.Success){
// Your code here...
}
}
catch (Exception) {
return false;
}
}
答案 2 :(得分:0)
我建议将以下代码添加到App.xaml.cs类的OnStart方法中,并加以解决。
CrossConnectivity.Current.ConnectivityChanged += (sender, e) =>
{
if (!CrossConnectivity.Current.IsConnected)
{
Console.WriteLine("Internet connectivity lost");
}
};