在旧的GameKit框架(iOS 7.0中不推荐使用的部分)中,GKSessionDelegate包含用于检测错误的必需方法session:didFailWithError:
。
这可以用于检测网络是否不可用,例如,如果当前禁用了Wi-Fi和蓝牙,它将返回GKSessionCannotEnableError
。在iOS 7.0中,这已被弃用,并由Multipeer Connectivity Framework和MCSession类取代,但用于从此类检索信息的MCSessionDelegate似乎没有任何错误检测。< / p>
MCNearbyServiceAdvertiserDelegate确实有一个方法advertiser:didNotStartAdvertisingPeer:
,用于检测对等方是否无法开始宣传其服务,即使在启动广告客户时启用了飞行模式,也很奇怪。事实上,即使在飞机模式下,Wi-Fi和蓝牙关闭它仍然会以某种方式宣传自己并且可以被其他设备上的浏览器检测到,但它似乎没有收到来自其他设备的任何邀请。
有没有办法获取错误信息并检测Multipeer Connectivity类目前是否无法访问其他设备?
答案 0 :(得分:0)
MultipeerConnectivity框架本身没有任何内容可以满足您的要求。但是,我确信如果您使用较低级别的对等发现代码(例如NSNetService或Bonjour C API),那么您可以使用这些框架来确定连接。
否则,也许您可以添加一个UI视图,该视图在您浏览同伴后显示,并且在设定的时间之后没有找到任何建议一些故障排除步骤(打开WiFi或蓝牙或两者;请验证其他设备已经网络服务;等)。