Если у вас нет какого-либо другого средства, на которое вы можете положиться (например, какой-то сервер, который вы можете использовать для обмена информацией), вам понадобится Service Discovery
.
Я уже написал несколько ответов, касающихся WifiP2p
и Service Discovery
, и предлагаю вам сначала взглянуть на них. Последнее, вероятно, должно вас заинтересовать больше всего.
- Почему обнаружение пиров для Android WifiDirect так ненадежно
- Wi-Fi P2P. Информировать всех доступных пиров о некотором событии
- Обнаружение службы Wi-Fi P2P работает с перебоями
Чтобы ответить на ваш вопрос о разнице между WifiP2p
и ServiceDiscovery
, позвольте мне использовать небольшую аналогию:
Представьте, что вы в аэропорту, вы только что приземлились в чужой стране. Вы покидаете зону беспошлинной торговли и видите всех людей, которые ждут людей, приземлившихся в аэропорту так же, как и вы. Вам нужно найти таксиста. Вы знаете, что он должен ждать вас с небольшим листком бумаги с вашим именем. Вы можете увидеть много таких парней, каждый из них держит лист бумаги с именем на нем. Вам нужно прочитать многие из них, пока вы не найдете тот, который подходит вам. Но вам не обязательно разговаривать со всеми этими людьми. Вы будете разговаривать только с таксистом и, вероятно, скажете гораздо больше, чем просто свое имя.
Теперь позвольте мне объяснить... Каждый человек, держащий лист бумаги, представляет собой Broadcasted Service
. Каждый broadcasted service
может нести небольшую часть информации (имя человека). Место для информации очень ограничено (на бумаге много не напишешь) и является «относительно постоянным» (требуется немного времени, чтобы его изменить). Когда вы искали нужного человека, вы выполняли Service Discovery
. Вам не нужно было разговаривать со всеми этими людьми, чтобы прочитать имена на этих листах бумаги - вам не нужно было подключаться к ним (с точки зрения WiFiP2p). Когда вы нашли интересующий вас, вы поговорили с мужчиной - вы установили соединение WiFiP2p. Теперь вы можете говорить с ним сколько угодно — вы можете передать через соединение столько данных, сколько захотите.
person
Bartek Lipinski
schedule
02.03.2016