我正在试验"可达性"在Xmarin中,使用Reachability
类(sample here),但我无法获得" IsHostReachable"工作的功能。
我确实知道Reachability
类使用NetworkReachability
类,但无论我使用哪个类,TryGetFlags()
方法总是将NetworkReachabilityFlags
参数传回零( 0)价值。
我开始使用Reachability
课程'方法,但在调试时我发现问题似乎来自NetworkReachability
。我尝试了以下代码以确保:
using (var r = new NetworkReachability(host))
{
NetworkReachabilityFlags flags;
if (r.TryGetFlags(out flags)) // <-- flags is always 0 (zero)
return (flags & NetworkReachabilityFlags.Reachable) == NetworkReachabilityFlags.Reachable;
return false;
}
就像我说的那样,flags
变量以零(0)值传回,而不管设备的当前连接状态如何。我正在测试的主机是一个Intranet网络应用程序,只有在我公司的WIFI上才能使用。我已经测试了在连接时对iPhone进行测试,并通过简单地尝试浏览到Safari中的主机来进行双重检查。
API记录很少,但我怀疑我可能需要以某种方式初始化NetworkReachability
类。
有什么想法吗?