如何在Wifi-Direct Android中创建特定的组所有者

时间:2013-09-09 17:38:52

标签: android wifi-direct

我有一个可以在两部手机上运行的Wifi Direct Android应用程序。

phone1phone2相关联时,我希望phone1充当clientphone2充当server。< / p>

我使用了这段代码:

if (info.groupFormed && info.isGroupOwner) {

           // start the server thread

   } else if (info.groupFormed) {

            // start the client thread
   }

但问题是,有时phone1启动了连接,我希望它充当客户端,它有时充当GroupOwner,服务器线程在客户端启动电话。

我想确保phone2始终充当GroupOwnerserver

3 个答案:

答案 0 :(得分:8)

要将对等体设置为客户端,而不是每次GroupOWner,我们必须指定:

config.groupOwnerIntent = 0;

答案 1 :(得分:3)

嗯,你能做的是:

@Override
public void connect(final WifiP2pDevice device) {
    //obtain a peer from the WifiP2pDeviceList
    WifiP2pConfig config = new WifiP2pConfig();
    config.deviceAddress = device.deviceAddress;
    config.wps.setup = WpsInfo.PBC;
    config.groupOwnerIntent = 15; // I want this device to become the owner
    mManager.connect(mChannel, config, new WifiP2pManager.ActionListener() {
        @Override
        public void onSuccess() {
            //success logic
            Log.d(P2P, "connected to device " + device.deviceName);
        }

        @Override
        public void onFailure(int reason) {
            //failure logic
            Log.d(P2P, "unable to establish connection to device " + device.deviceName);
        }
    });
}

请注意config.groupOwnerIntent = 15;行。这告诉WifiP2pConfig我们说明连接的设备更有可能成为GroupOwner。

文档here

希望它有所帮助。

答案 2 :(得分:1)

我已就此link给出了答案。它一定会帮到你。