我正在开发一个应用程序,它首先发现范围内的同伴,然后逐个连接所有这些我的函数看起来像这样:
void connectTo(WifiP2pDevice device) {
WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = device.deviceAddress;
config.groupOwnerIntent=15;
wifiP2pManager.connect(wifiDirectChannel, config, actionListener);
wifiP2pManager.createGroup(wifiDirectChannel, actionListener);
}
但我不知道Wifip2pManager类的connect和createGroup函数之间的区别。它们之间的核心区别是什么,请帮助!
答案 0 :(得分:1)
我知道我迟到了,但我相信这会对别人有所帮助。不需要createGroup,只需要以这种方式调用connect方法:
void connectTo(WifiP2pDevice device) {
WifiP2pConfig wifiP2pConfig = new WifiP2pConfig();
wifiP2pConfig.deviceAddress = device.deviceAddress;
wifiP2pConfig.groupOwnerIntent = 0;
wifiP2pConfig.wps.setup = WpsInfo.PBC;
if (wifiP2pManager != null) {
wifiP2pManager.connect(mChannel, wifiP2pConfig,
new ActionListener() {
@Override
public void onSuccess() {
// WiFiDirectBroadcastReceiver will notify us.
// Ignore for now.
Utility.showToast(
WifiP2PConnectionActivity.this,
Constants.CONNECTED);
}
@Override
public void onFailure(int reason) {
Utility.showToast(
WifiP2PConnectionActivity.this,
getErrorMessage(reason));
}
});
}
它现在将连接。 wifiP2pConfig.groupOwnerIntent = 0;设置为零,以便您允许其他设备每次成为所有者和您自己的设备作为客户端。 groupOwnerIntent优先考虑我们自己的设备优先级,而不是成为groupOwner。休息取决于您希望设备的行为方式。