Android WifiP2PManager - 几个问题

时间:2015-03-26 14:31:23

标签: java android p2p android-wifi wifi-direct

我正在尝试创建支持同时使用多个设备进行自动化测试的工具,其中设备应对其他操作做出反应(动作和反应)。第一个将启动测试的应该是Master,而下一个将成为客户端。以下是我的问题:

  1. 我可以使用WifiP2pManager.createGroup()方法让第一台设备成为Master,其他设备成为客户端吗?我的意思是这样的:

    manager.createGroup(channel, new WifiP2pManager.ActionListener() {
        @Override
        public void onSuccess() {
            //becomes Master
        }
    
        @Override
        public void onFailure(int reason) {
            //fails because group already exists, becomes Client
        }
    });
    
  2. 客户端是否可以在没有先前discoverPeers和连接呼叫的情况下获取组信息?所以我可以这样做:

    manager.requestGroupInfo(DriverWifiP2PManager.getInstance().getChannel(),  new WifiP2pManager.GroupInfoListener() {
        @Override
        public void onGroupInfoAvailable(WifiP2pGroup group) {
            //i could see group, and if i'm not an owner i could connect to group owner device
        }
    });
    
  3. 我是否需要在两侧调用connect才能加入p2p组?

  4. 感谢您的时间。

1 个答案:

答案 0 :(得分:2)

  1. 是的,您基本上可以创建群组的设备成为群组所有者,其他人可以将其作为客户端连接。

  2. 如果我理解问题是正确的,那么在创建组后答案是否定的,组所有者还必须添加本地服务来宣传该组,然后客户端使用常规发现方法来查找组所有者,然后正常连接到该组。

  3. 您只需要从客户端调用connect。请注意你

    • 创建组时获取已连接事件,即使没有客户端也是如此 连接的。
    • 当新的连接事件连接到你时,你会得到新的连接事件 当新客户端连接时,也可能会断开事件 :)
    • 群组信息为您提供了客户列表,所以从那里开始 你可以看到有多少客户连接