Android MQTT客户端订阅无法在API级别26下运行

时间:2019-08-27 17:17:34

标签: java android mqtt paho moquette

我在我的Android应用程序上将Paho的MQTT客户端用作服务。当我在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);

连接没有问题。连接没有问题。我只想知道为什么订阅在26以下的API版本上存在该问题。

1 个答案:

答案 0 :(得分:0)

好,我发现了问题。我正在使用Moquette Broker,并且Broker在Java版本8下和API 25级在某种程度上使用Java 6时遇到问题。 Paho的mqtt客户端没有问题。 谢谢大家