2014-10-14 2 views
3

После документации здесь:Отправка данных в открытии Android WiFi Direct службы вместо подключения

http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html

Это, как представляется, можно транслировать данные всех соседних устройств, которые имеют Wi-Fi Direct, не устанавливая соединение простым помещая данные в объект WifiP2pDnsSdServiceInfo. Это работает для моих целей, поскольку я пытаюсь создать простое приложение для обмена сообщениями P2P среди множества ближайших устройств. Однако это похоже на неправильное использование API, поскольку оно предназначено для переноса информации для настройки соединения и рекламы службы. Мои вопросы:

  • Каковы преимущества и недостатки отправки данных таким образом (пожалуйста, игнорируйте безопасность)?
  • Будут ли задержки при отправке/получении сообщений.
  • Каким будет влияние на срок службы батареи?

ответ

4
  • пары ключ/значение, которые вы передаете в WifiP2pDnsSdServiceInfo объекта будут инкапсулируются в сообщения многоадресной DNS, как указано в DNS-Based Service Discovery.

  • Многоадресный трафик на WiFi особенно дорог, поэтому его не рекомендуется использовать для обмена сообщениями. Только для критических вещей, таких как обнаружение сервисов.

  • В зависимости от реализации (андроид) под фреймворком можно объединить все записи/ответы об обнаружении службы, прежде чем он вызовет ваши обратные вызовы. Это может добавить значительную (даже непредсказуемую) задержку для вашего простого обмена сообщениями P2P.

  • Это в основном сообщение DNS, поэтому ваши «сообщения» могут быть кэшированы локально. DNS-запросы также могут пытаться оптимизировать на уровне среднего уровня, такие как объединение, повторные попытки, фильтрация запросов, приоритизация и т. Д.

  • Нет гарантии надежности, поэтому ваши сообщения могут быть потеряны.

  • Multicast трафика, который используется здесь, может привести к значительному battery drain on android, see here

+0

Можете ли вы прокомментировать производительность (скорость-накрест) и использования батареи установки и поддержания соединения с другим устройством? – ajnatural

+0

@ajnatural с 'WifiP2pDnsSdServiceInfo' нет установки соединения, это нулевая конфигурация, многоадресная рассылка разговора/прослушивания. Производительность будет ненадежной, как я упомянул в ответ, а тесто утечки тяжело из-за того, что он должен делать трансляцию. Если вы ссылаетесь на обычное соединение WiFi P2P, как только вы обнаружите и установили соединение, WiFi P2P будет иметь схожую скорость/энергоэффективность, как обычное соединение Wi-Fi. – ashoke

Смежные вопросы