在android wifi直接设置组所有者

时间:2012-11-02 09:36:30

标签: android-intent p2p intentfilter wifi-direct

具有更高意图的设备成为组所有者,在以下链接中说: http://developer.bada.com/help_2.0/index.jsp?topic=%2Fcom.osp.cppappprogramming.help%2Fhtml%2Fdev_guide%2Fnet%2Fwi-fi_direct_connectivity.htm

我在wifi-direct的google-demo项目中尝试了以下内容。 在调用广播接收器的主要活动类中,我在一个设备中运行时将优先级设置如下。

public void onResume() {
    super.onResume();
    receiver = new WiFiDirectBroadcastReceiver(manager, channel, this);
    intentFilter.setPriority(999);
    registerReceiver(receiver, intentFilter);
}

在下一个设备中运行代码时,我没有设置优先级。

public void onResume() {
    super.onResume();
    receiver = new WiFiDirectBroadcastReceiver(manager, channel, this);        
    registerReceiver(receiver, intentFilter);
}

因此,根据链接,具有较高优先级的设备应该是组所有者,但设置优先级似乎不起作用。 有没有办法在两个设备之间建立连接时明确地将特定设备指定为组所有者?

3 个答案:

答案 0 :(得分:4)

在connect方法中设置WifiP2pConfig对象的groupOwnerIntent,取值范围为0到15。 0表示最小倾向为GO,15表示最高倾向为GO:

WifiP2pConfig config = new WifiP2pConfig();

    config.groupOwnerIntent = 0;  //Less probability to become the GO
    config.deviceAddress = service.device.deviceAddress;
    config.wps.setup = WpsInfo.PBC;

答案 1 :(得分:1)

首先,您提供的链接适用于bada手机。我对该操作系统知之甚少,但分配可能有所不同。

无论如何,您可以手动为所需的任何设备分配意图值。例如,假设您要将单击“连接”按钮的用户设置为组所有者。根据定义,群组拥有者应具有最高倾向度,即大于0.检查this链接。

要将对等体指定为群组拥有者,只需将其指定为15

即可
config.groupOwnerIntent = 15;

答案 2 :(得分:0)

当我使用config.groupOwnerIntent = 0连接到远程设备时,是否表示我的设备将是群组所有者,或者远程设备是群组所有者?

如果远程设备的意图值大于0,则config.groupOwnerIntent = 0的设备应成为客户端。如果两个设备具有相同的意图值,那么联络断路器就会出现。 "意图值越大,成为GO" 。我们不能简单地通过将意图值设置为zer0来使设备充当组所有者。它还取决于其他连接设备的意图值。