3

我正在开发一个 P2P 应用程序,并且正在按照这里的教程进行操作,当我在 2 部手机上对其进行测试时,我一直在徘徊,何时必须启动 Peer Discovery?

仅在应用程序启动时,定期或每次启动一次onResume

我之所以问,是因为有时当我尝试显示对等点列表时,它找不到任何对象。我还想知道造成这种情况的原因以及对等发现实际上是什么以及它在做什么。

4

2 回答 2

2

我每隔“x”秒通过在应用程序中注册的侦听器开始发现,是的,您也希望启动发现 onResume()。另外,我认为您已经在利用广播意图 来确定状态变化。

但是,我无法澄清 P2P 发现的内部结构,但发现可能会失败,因为网络繁忙或由于内部错误,或者仅仅是因为设备不支持此处提到的 P2P 。

于 2014-04-14T17:49:36.963 回答
1
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;

            }
        }
    });
于 2015-02-14T15:14:58.767 回答