2012-03-07 4 views
18

Что лучше всего подходит для Android-приложения, установленного на двух устройствах, для связи друг с другом? Могут ли устройства напрямую подключаться без использования текстовых сообщений?Android - связь между двумя устройствами

+0

Android Beam :) Но это доступно только на нескольких новых устройствах. –

ответ

12

Вы можете подключить их через bluetooth с помощью BluetoothSockets. На веб-сайте разработчика Android есть довольно хорошая документация по этому вопросу.

http://developer.android.com/guide/topics/wireless/bluetooth.html

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

http://developer.android.com/reference/java/net/ServerSocket.html для стороны http://developer.android.com/reference/java/net/Socket.html сервера для клиентской стороны

Если у вас есть большое количество данных для передачи, интернет-розетки имеют большую пропускную способность данных и будут быстрее. Другое преимущество заключается в том, что нет такой вещи, как «вне диапазона». Вы можете подключить два устройства везде, где доступен интернет, тогда как с Bluetooth они должны находиться в диапазоне Bluetooth друг от друга

+0

Здравствуйте, Дерек, у меня есть вопросы. Надеюсь, ты ответишь. Как приложение должно получить IP-адрес сервера? а также RMI работает только тогда, когда оба устройства, использующие одну и ту же сеть, могут быть одинаковыми для сокетов? – Ruturaj

+1

«WiFi-Direct» тоже не вариант? – Mick

1

Зависит от того, что вы делаете. Если у вас есть сервер, вы можете отправить ему какое-то сообщение и вытащить его на другое устройство (при условии, что оба клиента установили приложение). Я думаю, что это будет самый интуитивный способ (но это действительно зависит от того, что вы общаетесь).

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

0

андроид НРД API предназначен, чтобы сделать ту же самую вещь, которую вы пытаетесь достичь! Пример, связанный с SDK, является самоочевидным!

пожалуйста, проверьте:

Android NSD API example

14

У вас есть несколько вариантов, в зависимости от ваших требований и установок:

  • Если устройства находятся очень близко друг к другу (примерно до 10 метров) , вы можете общаться с помощью Bluetooth, как предложил Дерек.
  • Если ваши устройства находятся в некотором отдалении, но в пределах диапазона WiFi друг от друга (до 100 метров), то они могут общаться друг с другом, используя API-интерфейс Peer-to-Peer WiFi, зарегистрированный here (часть Android Wireless API). Это не требует наличия WiFi-маршрутизатора, и устройства будут находить друг друга и общаться напрямую. Однако для этого требуется Android 4.1 или выше.
  • Беспроводной API-интерфейс Android также будет работать, если ваши устройства находятся в одной локальной сети (например, используют тот же WiFi-маршрутизатор), даже если они не находятся в пределах друг от друга.
  • Если ни один из этих вариантов не является жизнеспособным/гарантированным, я согласен с Дереком, что самым простым способом было бы использовать ServerSocket и Socket для создания интерфейса сервера/клиента через Интернет. Вот это sample application.Основная проблема, с которой вы можете столкнуться, заключается в том, что если сервер сидит за NAT (например, домашний интернет-маршрутизатор), вам придется настроить NAT для пересылки входящих пакетов на ваш Android-сервер.
0

вы должны взглянуть на WifiDirect

Wi-Fi соединения равноправных узлов ЛВС (P2P) позволяет Android 4.0 (уровень API 14) или более поздней версии устройства с соответствующим оборудованием для прямого подключения к каждый другой через Wi-Fi без промежуточной точки доступа.