我在验证互联网连接时遇到问题。请参阅我的代码中有此验证信息:
if (CrossConnectivity.Current.IsConnected)
{
...
}
它可以工作,但是我认为这种情况无法解决,我在办公室隔壁有一家购物商店,进入购物商店,并且该设备仅与购物WI-FI连接,但是没有通过数据,因为需要登录会话才能从购物中获得免费的WI-FI。
所以我在简历中的问题是,有没有一种方法,不仅可以验证设备是否连接到互联网,还可以验证设备是否通过连接传递数据?
答案 0 :(得分:1)
我没有尝试此解决方案,但可能会对您有所帮助。
uri
if (CrossConnectivity.Current.IsConnected)
{
if (ConnectGoogle())
{
return true;
}
else
{
//
}
}
方法
ConnectGoogle
答案 1 :(得分:1)
您可以使用System.Net.WebClient
并测试打开/读取URL。另外,另一种方法可能是对理论上永远不会脱机的资源执行ping操作。即Google。
类似:
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)
谢谢大家,我看到所有答案都适合我的情况,但是我从https://jamesmontemagno.github.io/ConnectivityPlugin/PingaHost.html使用了这种方法,您可以打开它,也可以在这里查看它:
var verificaPassagemDados = await CrossConnectivity.Current.IsRemoteReachable("google.com");
感谢@sme