WiFi 直连:多久调用一次对等发现?
Posted
技术标签:
【中文标题】WiFi 直连:多久调用一次对等发现?【英文标题】:WiFi direct: how often to call peer discovery? 【发布时间】:2014-04-14 16:01:22 【问题描述】:我正在开发一个 P2P 应用程序并按照教程 HERE 进行操作,当我在 2 部手机上对其进行测试时,我一直在徘徊,何时必须启动 Peer Discovery?
在应用启动时仅一次,定期或每次onResume
?
我之所以问,是因为有时当我尝试显示对等点列表时却找不到任何对象。 我还想知道造成这种情况的原因以及对等发现的实际意义以及它在做什么。
【问题讨论】:
【参考方案1】:我每隔“x”秒通过在应用程序中注册的侦听器开始发现,是的,您也希望在 onResume() 上启动发现。另外,我想你已经在利用broadcast intents 来判断状态变化。
但是,我无法澄清 P2P 发现的内部机制,但发现可能会失败,因为网络繁忙或由于内部错误,或者仅仅是因为设备不支持 P2P,如 here 所述。
【讨论】:
非常感谢。最后一个问题,如果我不打算发送任何东西而只是等待接收,我是否必须开始发现? 假设您已经与设备配对,您不必处于发现模式。【参考方案2】:mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener()
@Override
public void onSuccess()
Toast.makeText(MainActivity.this, "onSuccess", Toast.LENGTH_SHORT).show();
@Override
public void onFailure(int reasonCode)
switch(reasonCode)
case WifiP2pManager.ERROR:
Toast.makeText(MainActivity.this, "Getting error while peers discover", Toast.LENGTH_SHORT).show();
break;
case WifiP2pManager.P2P_UNSUPPORTED:
Toast.makeText(MainActivity.this, "Device is not supported", Toast.LENGTH_SHORT).show();
break;
case WifiP2pManager.BUSY:
Toast.makeText(MainActivity.this, "Device is busy", Toast.LENGTH_SHORT).show();
break;
);
【讨论】:
以上是关于WiFi 直连:多久调用一次对等发现?的主要内容,如果未能解决你的问题,请参考以下文章