Клиентская MQTT-подписка Android не работает на уровне API 26

Я использую MQTT-клиент Paho в своем приложении для Android в качестве сервиса. Когда я пробую его на API 26 и выше, он работает без проблем, но подписка не работает под этой версией.

mqttClient.subscribe(JOIN_TOPIC, 0).setActionCallback(new IMqttActionListener() {
   @Override
   public void onSuccess(IMqttToken asyncActionToken) {
      Log.d("Client Service", "Subscribe Success");
   }

   @Override
   public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
      Log.d("Client Service", "Subscribe Failed");
   }
});

Я использую genymotion для тестирования и отладки SDK. API 26 входит в метод onSuccess, а API 25 - нет. Метод публикации не имеет проблем на обоих клиентах.

mqttClient = new MqttAndroidClient(getApplicationContext(), serverUri, nickname);
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(true);
mqttToken = mqttClient.connect(options);

Нет проблем с подключением. Это связано без проблем. Я просто хочу знать, почему подписка имеет такую ​​проблему на версиях API до 26.

1 ответ

Хорошо, я нашел проблему. Я использовал брокер moquette, и у брокера возникла проблема в java версии 8, а API уровня 25 как-то использовал java 6. Нет проблем с клиентом Paho mqtt. Спасибо всем

Другие вопросы по тегам