如何在 Wifi-Direct Android 中创建特定组所有者
Posted
技术标签:
【中文标题】如何在 Wifi-Direct Android 中创建特定组所有者【英文标题】:How to make a specific group owner in Wifi-Direct Android 【发布时间】:2013-09-09 17:38:51 【问题描述】:我有一个 Wifi Direct android 应用程序,可以在两部手机上运行。
当phone1
连接到phone2
时,我希望phone1
充当client
和phone2
充当server
。
我使用了这个代码:
if (info.groupFormed && info.isGroupOwner)
// start the server thread
else if (info.groupFormed)
// start the client thread
但问题是,有时phone1
已经启动了连接,我希望它充当客户端,它有时充当GroupOwner
,并且在客户端电话上启动服务器线程。
我想确保phone2
始终充当GroupOwner
和server
。
【问题讨论】:
【参考方案1】:要将 peer 设置为客户端,而不是 GroupOWner
eachtime,我们必须分配:
config.groupOwnerIntent = 0;
【讨论】:
相反的情况呢?您如何强制对等方不是客户? 这取决于 0-15 之间的值,值越高成为 groupOwner 的可能性越大。【参考方案2】:好吧,你可以做的是:
@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
希望对你有帮助。
【讨论】:
以上是关于如何在 Wifi-Direct Android 中创建特定组所有者的主要内容,如果未能解决你的问题,请参考以下文章
WiFi-Direct 在游戏开发中的使用 (Android)
在Android和Raspberry Pi 3 Linux之间建立Wifi-Direct连接