Клиентская 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. Спасибо всем