Android: получить онлайн или оффлайн статус через СЕРВЕР

Я создаю приложение в версии Android 4.0.3, т.е. ICS, которое подключается к серверу, когда клиент входит в приложение. Я пытаюсь получить статус клиента, когда он подключается к сети или оффлайн через сервер и отображается на экране приложения .Я не могу продолжить. Кто-нибудь может мне сказать:

Можно ли получить статус пользователя через сервер?

1-- Как перейти к первому шагу...?

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

Это будет очень полезно, если кто-нибудь направит меня. Огромное спасибо..


person Rahul Baradia    schedule 22.06.2012    source источник


Ответы (2)


Я предполагаю, что вы пытаетесь разработать приложение для чата?

В этом случае попробуйте использовать библиотеку XMPP. XMPP широко используется для чат-приложений, включая чат Facebook (и Google Talk, я думаю), и существует множество доступных библиотек с открытым исходным кодом.

В противном случае, если вы хотите, чтобы уведомления в реальном времени были частью общей картины, попробуйте использовать push-уведомления. Google поддерживает обмен сообщениями из облака на устройство (C2DM) для Android. Это позволяет получать push-уведомления на определенное устройство без необходимости иметь дело с постоянными подключениями, использованием батареи и процессора и т. д.

Подход C2DM сводится к этому. Когда клиент подключается к вашему серверу, получите список его друзей и их «идентификаторы C2DM» и запустите отправку C2DM на их устройства. Этот толчок доставляется вашему приложению, и вы можете ответить на него, отправив уведомление или обновив пользовательский интерфейс и т. д. (Ваше приложение не обязательно должно быть запущено. Push-уведомление доставляется через определенную широковещательную рассылку, и ваше приложение может зарегистрировать приемник для его пробуждения.)

Имейте в виду, что существует квота на сообщения C2DM на устройство, на приложение, а также ограничение полезной нагрузки на сообщение. Таким образом, вы не должны отправлять массивные файлы через это. Просто уведомление для вашего приложения, чтобы оно могло позвонить на ваш сервер и получить обновленный список вместо опроса.

Вы можете получить больше информации о C2DM и примерах кода здесь. https://developers.google.com/android/c2dm/

Надеюсь это поможет.

person Madushan    schedule 22.06.2012

Возможно, вы продвинулись дальше, но я пишу для тех, кто столкнется с этим в будущем.

Firebase — хорошее решение для использования в этом случае, если приложение всегда запущено, когда вам нужно общение чтобы это произошло. (Оно не разбудит ваше приложение, как это делает C2DM/CDM, если только у вас нет службы, которая работает все время и все равно не проснется, если устройство находится в спящем режиме... насколько это возможно)

Это может быть полезно для некоторых сценариев, но не для приложения чата, поскольку вы хотите, чтобы устройство просыпалось при поступлении сообщения.

Обратите внимание, что у них есть ограничения на бесплатную подписку.

person Madushan    schedule 10.02.2014