Для того, чтобы иметь «связь» двух приложений, вам необходимо подключение - TCP/IP (WiFi/сеть), Bluetooth и т. Д. Если они «далеко», то это сетевое подключение.
Для использования TCP/IP устройство нуждается в «IP-адресе» - это назначается несущей, подключенной WiFi-сетью и т. Д. Поскольку эти IP-адреса меняются со временем, вы не можете полагаться на него. Это похоже на попытку отправить письмо кому-то, у которого всегда есть другой адрес дома. Каждый раз вам нужно спросить, куда его отправить. Однако вы можете запросить только письмо, поэтому, если оно изменится до вашего запроса, вы не сможете связаться, пока не свяжетесь с вами. Но если ваше устройство делает то же самое, тогда вы быстро не сможете общаться.
Поэтому вам нужен «статический IP-адрес» (сервер) и «таблица поиска» - способ идентификации устройства, с которым вы хотите связаться (например, имя пользователя или номер телефона), а затем вы можете получить IP, когда эти устройства сообщают серверу, что это такое. Аналогично, ваше устройство может сообщить серверу, что ваш IP-адрес.
Однако для вас это очень удобно, для сетей и для устройств. Именно по этой причине Google сделал Google Cloud Messaging (GCM). Он делает большую часть этого - включая сообщения о очередности, когда устройство недоступно, сохраняя точные и обновленные адреса устройств, проверку доставки сообщений, время работы сервера и т. Д.
Это называется push-уведомлениями, поскольку сервер знает, куда «нажимать» сообщение, когда вы этого хотите.
EDIT: Вы должны создать «таблицу поиска» - GCM будет отслеживать идентификаторы устройств и IP-адресов, но вы, вероятно, не хотите, чтобы каждое устройство хранило таблицу «всех устройств» - вам просто нужно, чтобы список «контактов» (подмножество «всех устройств»). Если вы не создаете это для очень маленькой группы, вам нужен сервер, чтобы справиться с этим.
Существует много альтернатив GCM - Parse, Quickblox и т. Д. Или создать собственный сервер XMPP. Но если вам не нравится SQLite, лучше выбрать «из коробки».
Кроме того, это, вероятно, намного сложнее, чем вы понимаете. Но для меня это интересный и интересный аспект мобильных устройств.
Хорошо объяснил Jim – Snake
Это очень интересно, я действительно прочитал в GCM и хотел использовать его в качестве моста между приемом и отправкой, однако я заметил раздел в грамотности GCM, который вам нужен сервер, на который ваше приложение уже отправляет данные, чтобы GCM мог захватить эти данные и отправить их на указанный телефон. –
Да. Я отредактировал свой ответ. Я сказал: «GCM делает все», но на самом деле этого не происходит. Он может, но когда вы прочтете мое редактирование, это будет иметь смысл, я думаю. – Jim