Автоматическая аутентификация для Android WiFi Direct - PullRequest
17 голосов
/ 09 февраля 2012

В Android ICS предоставляется API-интерфейс Wireless P2P (WiFi Direct).

Я пытался разработать приложение, которое может автоматически подключать 2 телефона через Wireless P2P, если MAC-адрес совпадает.Из документации SDK мне нужно выполнить следующие шаги:

  1. Включить WiFi Direct из настроек.
  2. Инициализировать P2P-соединение.- initialize ()
  3. Discover Peer.- DiscoverPeers ()
  4. Проверьте, совпадает ли MAC-адрес.
  5. Соединитесь с обнаруженным узлом.- connect ()

После вызова API connect () телефон Farside откроет диалог аутентификации соединения.(В зависимости от WifiP2pConfig)

Есть ли возможность автоматически подключаться, не имея Farside для вызова диалога?

Ответы [ 2 ]

15 голосов
/ 05 апреля 2012

Кажется, что автоматизация диалогов аутентификации невозможна, и это также делает невозможной маршрутизацию p2p.Прямо сейчас класс WpsInfo (который используется в классе WifiP2pConfig, который передается в функцию connect () WifiP2pManager во время однорангового соединения) отображает диалоги аутентификации только четырьмя способами: DISPLAY / KEYPAD / LABEL / PBC.Я считаю, что PBC (кнопка конфигурации) по умолчанию и это то, что вы ссылаетесь.Другие три опции требуют от пользователя ввода типа пина, что делает их еще более непригодными для автоматических соединений.Может быть, если бы мы нашли тип этого диалогового класса аутентификации, мы могли бы автоматизировать нажатие кнопки «ОК»?

Хотелось бы добавить новую опцию, которая дала бы приложению возможность аутентифицироватьсоединение, а не пользователь.Эта аутентификация, основанная на пользователях, выглядит так, как будто она перенесена с Bluetooth API, и сильно ограничивает полезность Wi-Fi Direct.Может быть, люди из Google могли бы помочь нам?

2 голосов
/ 07 ноября 2016

Между тем ситуация изменилась. Вы можете создать прямое соединение Wi-Fi полностью автоматически, используя creategroup () из WifiP2pManager и получить случайно сгенерированный пароль и SSID с onGroupInfoAvailable () , см. это описание с пример кода .

...