настройка владельца группы в android 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

Я попробовал следующее в демонстрационном проекте google для wifi-direct. В основном классе активности, из которого был вызван широковещательный приемник, я установил приоритет следующим образом при работе на одном устройстве.

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);
}

Таким образом, согласно ссылке, устройство с более высоким приоритетом должно было быть владельцем группы, но установка приоритета не работает. Есть ли способ явно назначить конкретное устройство владельцем группы при установлении соединения между двумя устройствами?


person Subash Basnet    schedule 02.11.2012    source источник


Ответы (3)


В вашем методе подключения задайте groupOwnerIntent объекта WifiP2pConfig, диапазон значений составляет от 0 до 15. 0 указывает наименьшую склонность к переходу, а 15 указывает наибольшую склонность к переходу:

Конфигурация WifiP2pConfig = новый WifiP2pConfig();

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

Прежде всего, ссылка, которую вы предоставили, предназначена для телефонов bada. Я мало что знаю об этой операционной системе, но вполне возможно, что назначение может быть другим.

В любом случае, вы можете вручную назначить значение намерения для любого устройства, которое вы хотите. Например, предположим, что вы хотите установить пользователя, который нажал кнопку подключения, в качестве владельца группы. По определению, у владельца группы должен быть самый высокий наклон, то есть больше 0. Проверьте эта ссылка.

Чтобы назначить однорангового узла владельцем группы, просто назначьте его 15

config.groupOwnerIntent = 15;
person misterbaykal    schedule 14.11.2012
comment
когда я подключаюсь к удаленному устройству с config.groupOwnerIntent = 0, означает ли это, что мое устройство будет владельцем группы или удаленное устройство будет владельцем группы? - person Lily; 16.02.2013
comment
Поскольку у вас groupOwnerIntent = 0, вы будете владельцем группы. Но если у удаленного устройства groupOwnerIntent = 0, оно будет владельцем группы. - person misterbaykal; 21.05.2013
comment
Я думаю, что должно быть наоборот; см. ответ Фейсала ниже. Из документов:This is an integer value between 0 and 15 where 0 indicates the least inclination to be a group owner and 15 indicates the highest inclination to be a group owner. A value of -1 indicates the system can choose an appropriate value. - person ocramot; 18.04.2015
comment
Ты прав. Я изменил ответ. Спасибо за напоминание. - person misterbaykal; 19.04.2015

когда я подключаюсь к удаленному устройству с config.groupOwnerIntent = 0, означает ли это, что мое устройство будет владельцем группы или удаленное устройство будет владельцем группы?

Ваше устройство с config.groupOwnerIntent = 0 должно стать клиентом, учитывая, что значение намерения удаленного устройства больше 0 . Если оба устройства имеют одинаковое значение намерения, то вступает в действие тай-брейк. «Чем больше значение намерения, тем выше шанс стать GO». Мы не можем просто заставить устройство действовать в качестве владельца группы, установив значение намерения равным zer0. Это также зависит от значения намерения другого подключающегося устройства.

person user3493629    schedule 28.10.2014