Если у вас нет другого носителя, на который вы можете положиться (например, какой-то фоновый код, который вы можете использовать для обмена информацией), вам понадобится Service Discovery
.
Я уже написал несколько ответов относительно WifiP2p
и Service Discovery
, и я предлагаю вам взглянуть на них в первую очередь. Последнее, вероятно, должно вас заинтересовать больше всего.
- Why is discovering peers for Android WifiDirect so unreliable
- Wi-fi P2P. Inform all peers available of some event
- Wifi P2P service discovery works intermittently
Чтобы ответить на ваш вопрос о разнице между WifiP2p
и ServiceDiscovery
, позвольте мне использовать небольшую аналогию:
Представьте, что вы в аэропорту, вы только что приземлились в чужой стране . Вы покидаете беспошлинную зону, и вы видите всех людей , которые ждут людей, которые приземлились в аэропорту так же, как . Вам нужно найти своего таксиста. Вы знаете, он должен быть ждет вас с небольшим листом бумаги с вашим именем на нем. Вы, , можете видеть многих таких парней, каждый из которых держит бумагу с именем на ней. Вам нужно прочитать многие из , пока не найдете тот, который у вас есть. Но вам не нужно разговаривать с всеми этими людьми. Вы будете говорить только с вашим водителем такси, и вы будете , вероятно, рассказать гораздо больше, чем просто ваше имя.
Теперь позвольте мне объяснить ... Каждый человек, держащий кусок бумаги, представляет собой Broadcasted Service
. Каждый broadcasted service
может нести небольшую часть информации (имя человека). Пространство для информации очень ограничено (вы не можете много писать на бумаге) и является «относительно постоянным» (для его изменения требуется немного). Когда вы искали подходящего человека, вы делали Service Discovery
. Вам не нужно было разговаривать со всеми этими людьми, чтобы читать имена на этих листах - вам не нужно было подключаться к ним (WiFiP2p-мудрый). Когда вы нашли тот, который вас интересует, вы поговорили с человеком - вы установили соединение WiFiP2p. Теперь вы можете поговорить с ним столько, сколько хотите - вы можете передавать столько данных, сколько хотите, через соединение.
Большое спасибо, ваш ответ был ясен и очень хорошо сделан. К сожалению, я думал отправить данные, как изображение и другую информацию, но, похоже, это невозможно. Я посмотрю на это немного больше, чтобы узнать, сколько данных я могу поместить в эфир. Спасибо, +1 и принят. – Aurasphere
Возможно, вы не сможете отправить изображение. Возможно, вы могли бы транслировать URL-адрес изображения (я не помню предела для широковещательного сообщения) –