0

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 は入りません。Publish メソッドは、両方のクライアントで問題はありません。

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

接続には問題ありません。問題なく接続されています。26 未満の API バージョンで subscribe に問題がある理由を知りたいだけです。

4

1 に答える 1