Что лучше всего подходит для Android-приложения, установленного на двух устройствах, для связи друг с другом? Могут ли устройства напрямую подключаться без использования текстовых сообщений?Android - связь между двумя устройствами
ответ
Вы можете подключить их через 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 друг от друга
Зависит от того, что вы делаете. Если у вас есть сервер, вы можете отправить ему какое-то сообщение и вытащить его на другое устройство (при условии, что оба клиента установили приложение). Я думаю, что это будет самый интуитивный способ (но это действительно зависит от того, что вы общаетесь).
Текстовые сообщения и электронная почта могут работать, но вы (или пользователь) должны знать номера/электронные письма, связанные с устройством, чтобы это сделать.
вы можете использовать PubNub. он обрабатывает все сети, и вы должны заботиться только о сообщениях. У этого есть отличный API для работы.
(Благодаря @Ian Дженнингс: Can we send data from an android device to another android device directly (p2p) without server in the middle?)
андроид НРД API предназначен, чтобы сделать ту же самую вещь, которую вы пытаетесь достичь! Пример, связанный с SDK, является самоочевидным!
пожалуйста, проверьте:
У вас есть несколько вариантов, в зависимости от ваших требований и установок:
- Если устройства находятся очень близко друг к другу (примерно до 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-сервер.
вы должны взглянуть на WifiDirect
Wi-Fi соединения равноправных узлов ЛВС (P2P) позволяет Android 4.0 (уровень API 14) или более поздней версии устройства с соответствующим оборудованием для прямого подключения к каждый другой через Wi-Fi без промежуточной точки доступа.
Android Beam :) Но это доступно только на нескольких новых устройствах. –