2015-03-02 3 views
1

Просто быстрый вопрос, который я пытался найти в Google и хорошо, пришел с результатами, которые не полностью удовлетворяют тем, что я ищу. То, что я хочу разработать, - это два приложения, которые по существу только я вижу и работаю, поэтому основное приложение, а затем еще одно на стороне клиента. Клиентское приложение увидит только то, что я отправил из своего приложения.Приложение для Android для связи с приложениями

Вопрос, который я хочу задать, это возможно? Я нашел учебники о том, как делать приложения для приложений, но когда они делают это в учебнике, приложение, с которым они хотят общаться, уже на телефоне. Но мои приложения будут на разных телефонах далеко друг от друга. эта концепция все еще работает.

Моя основная причина для этого, чтобы избежать подключения к серверу от приложения android к mysql, а затем клиентская сторона также выполняет подключение к серверу для получения информации, так как мое понимание подключения базы данных mysql от андроида минимально к нулю прямо сейчас.

ответ

1

Для того, чтобы иметь «связь» двух приложений, вам необходимо подключение - 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, лучше выбрать «из коробки».

Кроме того, это, вероятно, намного сложнее, чем вы понимаете. Но для меня это интересный и интересный аспект мобильных устройств.

+0

Хорошо объяснил Jim – Snake

+0

Это очень интересно, я действительно прочитал в GCM и хотел использовать его в качестве моста между приемом и отправкой, однако я заметил раздел в грамотности GCM, который вам нужен сервер, на который ваше приложение уже отправляет данные, чтобы GCM мог захватить эти данные и отправить их на указанный телефон. –

+0

Да. Я отредактировал свой ответ. Я сказал: «GCM делает все», но на самом деле этого не происходит. Он может, но когда вы прочтете мое редактирование, это будет иметь смысл, я думаю. – Jim

Смежные вопросы