Как запустить AWSIotMqttSubscription в сервисе Android - PullRequest
1 голос
/ 23 сентября 2019

Я хочу попробовать запустить подписку 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 в службе, она не работала.

Спасибо и С уважением,

Амар.

...