Я хочу попробовать запустить подписку awsiotmqtt в фоновом режиме Android. Когда клиент отправляет сообщение по протоколу mqtt, приложение может получать сообщение и отображать пользователя.
Код MQtt подписки:
try{
mqttManager.subscribeToTopic(MainActivity.TOPIC, AWSIotMqttQos.QOS0, new AWSIotMqttNewMessageCallback() {
@Override
public void onMessageArrived(String topic, byte[] data) {
try {
String msg = new String(data,"UTF-8");
Log.d(LOG_TAG, "**message arrived:**");
Log.d(LOG_TAG, "topic: " + topic);
Log.d(LOG_TAG, "message: " + msg);
Toast.makeText(getApplicationContext(),"messages are arrived:"+msg,Toast.LENGTH_SHORT).show();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
});
}catch (Exception e){
e.printStackTrace();
Log.d(LOG_TAG,"Subscription error",e);
}
Файл службы вызова из действия:
Intent intent = new Intent(MainActivity.this,NotificationService.class);
startService(intent);
Когда я опубликовал сообщение в приложении.Приложение не получило никаких данных, отправленных клиентом. Когда я запускаю подписку mqtt в действии, она будет работать нормально.Но когда я запускал подписку mqtt в службе, она не работала.
Спасибо и С уважением,
Амар.