В моем старом проекте я создал нечто похожее на то, что вам нужно.
Я все еще уверен, что системы уведомлений Google (и Apple) лучше. В любом случае вот что вам нужно.
Вы можете использовать Eclipse Paho для создания и потребления сообщений MQTT.
В мой файл build.gradle приложения для Android я добавил:
compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
Теперь есть более новая версия библиотеки
Эта библиотека предлагает вам все необходимые API для того, чтобы получать и генерировать MQTT-сообщения на устройстве Android и с него.
В разделе документации вы можете найти пример приложения. Вы можете начать оттуда
На стороне сервера я использовал Apache ActiveMQ в качестве брокера. Он предлагает встроенную реализацию обработчика MQTT, и вы можете создавать темы и очереди для обработки сообщений MQTT.
Надеюсь, это полезно
Angelo
РАЗДЕЛ РЕДАКТИРОВАНИЯ
Предположим, вы хотите использовать ActiveMQ на стороне сервера.
Вы должны загрузить и установить activemq. В файле activemq.xml внутри каталога ${activemq_home}/conf
вы найдете конфигурацию mqtt. Вот эта строка:
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
Это означает, что activemq обрабатывает сообщения протокола mqtt на порту 1883 (порт TCP / IP mqtt по умолчанию).
На консоли администратора ActiveMQ вы можете создать тему или очередь, которую вы хотите использовать для своих сообщений. В приложении необходимо подключить сервис paho к созданной теме или очереди.
Обратите внимание, что по умолчанию activemq использует в памяти БД. Я предлагаю вам настроить его, чтобы использовать обычную СУБД или даже NoSQL DB. Самое главное, чтобы вы сконфигурировали его так, чтобы все сообщения не были в памяти, иначе вы рискуете потерять сообщения.
Более того, если вы выставляете в Интернете activemq, я настоятельно рекомендую вам защитить его с помощью безопасных учетных данных или SSL-сертификатов.