Настройка владельца группы в 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-demo проекте 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);
}
Таким образом, согласно ссылке, устройство с более высоким приоритетом должно было быть владельцем группы, но установка приоритета не работает. Есть ли способ явно назначить конкретное устройство в качестве владельца группы, когда между двумя устройствами устанавливается соединение?
3 ответа
В вашем методе соединения установите groupOwnerIntent объекта WifiP2pConfig, диапазон значений от 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;
Прежде всего, вы предоставили ссылку для телефонов Bada. Я не знаю много об этой операционной системе, но возможно, что назначение может быть другим.
Во всяком случае, вы можете вручную назначить значение намерения для любого устройства, которое вы хотите. Например, допустим, вы хотите установить пользователя, который нажал кнопку подключения, в качестве владельца группы. По определению, владелец группы должен иметь наибольший наклон, что означает больше 0. Проверьте эту ссылку.
Чтобы назначить пира владельцем группы, просто назначьте его 15
config.groupOwnerIntent = 15;
Когда я подключаюсь к удаленному устройству с config.groupOwnerIntent = 0, означает ли это, что мое устройство будет владельцем группы или удаленное устройство будет владельцем группы?
Ваше устройство с config.groupOwnerIntent = 0 должно стать клиентом, если значение намерения удаленного устройства больше 0 . Если оба устройства имеют одинаковое значение намерения, тогда включается прерыватель связи. "Чем больше значение намерения, тем больше вероятность стать GO" . Мы не можем просто заставить устройство выступать в роли владельца группы, установив значение намерения равным нулю. Это также зависит от значения намерения другого подключенного устройства.