我一直在使用Android WifiP2pManager来发现其他设备上的特定服务。我想知道函数是否有已知的超时时间
public void discoverServices (WifiP2pManager.Channel c, WifiP2pManager.ActionListener listener)
我在Android API中找不到任何资源。我知道我可以设置一个成功发现的监听器,但我不知道如何判断是否没有发现。
此外,有没有办法在不完全停止wifi管理器功能的情况下停止发现?
提前感谢您的帮助!
答案 0 :(得分:1)
据我所知,clearServiceRequests()应该可以正常取消服务发现。
一般情况下,我还没有找到任何超时文档,因此我一直使用1分钟超时计时器来解决问题。
请注意,一旦您调用了一次回调,就应该取消超时计时器,之后您应该等待发现新服务。
我还没有看到任何关于服务发现超时应该在不同服务之间存在多长时间的文档,但是通过一些测试我已经确定应该至少5秒,以便很好地发现服务。
答案 1 :(得分:0)
https://sphen.proxmobil.com/android-wi-fi-direct-service-discovery/
这篇博客提到超时是120秒。
服务发现只能持续120秒 调用WifiP2pManager的discoverServices方法。如果申请 开发人员需要更长时间的服务发现,他们会 需要重新调用WifiP2pManager.discoverServices方法。