Android WifiP2PManager - 几个问题

Android WifiP2PManager - few questions

我正在尝试创建支持同时对许多设备进行自动测试的工具,其中设备应该对其他操作做出反应(操作和反应)。第一个启动测试的应该是 Master,接下来的每个都成为 client。这是我的问题:

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

    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. Client是否可以在没有之前discoverPeers和connect调用的情况下获取组信息?所以我可以这样做:

    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. 加入p2p群需要双方都调用connect吗?

感谢您的宝贵时间。

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

  2. 如果我没理解错的话,答案是否定的。创建群后,群主还必须添加本地服务来宣传群,然后是客户端,使用正常的发现方法来找到群主,然后正常连入群

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

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