Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android WifiP2PManager-几个问题_Java_Android_P2p_Android Wifi_Wifi Direct - Fatal编程技术网

Java Android WifiP2PManager-几个问题

Java Android WifiP2PManager-几个问题,java,android,p2p,android-wifi,wifi-direct,Java,Android,P2p,Android Wifi,Wifi Direct,我正在尝试创建一个工具,该工具将支持同时使用多个设备进行自动测试,设备应该对其他操作(操作和反应)做出反应。第一个启动测试的应该是Master,接下来的每个都成为client。我的问题是: 我可以使用WifiP2pManager.createGroup()方法使第一个设备成为主设备,其他设备成为客户端吗?我的意思是这样的: manager.createGroup(channel, new WifiP2pManager.ActionListener() { @Override pu

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

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

    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
        }
    });
    
    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
        }
    });
    
  • 客户端是否可以在没有以前的发现对等方和连接呼叫的情况下获取组信息?所以我可以这样做:

    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
        }
    });
    
    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
        }
    });
    
  • 要加入p2p组,我是否需要在两侧呼叫connect

  • 谢谢你抽出时间

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

  • 如果我正确理解这个问题,答案是否定的。创建组后,组所有者还必须添加本地服务来公布组,然后添加客户端,使用常规发现方法查找组所有者,然后正常连接到组

  • 您只需要从客户端调用connect。注意你

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