Я хочу прослушать тему MQTT с учетными данными - PullRequest
0 голосов
/ 01 октября 2018

Приложение должно начать прослушивание темы MQTT со следующими учетными данными: тема «ronix / network».Тема должна ответить строкой JSON одного параметра с ключом «PASS».

Чтобы опубликовать сообщение по данной теме, введите эту ссылку: http://ronixtech.com/ronix_services/task/mqtt_pub.html и нажмите кнопку «отправить MQTT», чтобы опубликовать необходимое сообщение, которое должно быть получено в вашем приложении для анализа и полученияпароль сети.

Мой код: -

public class MQTTMessageActivity extends AppCompatActivity {

String topicStr = "ronix/network";

MqttAndroidClient client;

String receivedMessage;

TextView subtext;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_message);

    subtext = findViewById(R.id.receivedMessage);

    String clientId = MqttClient.generateClientId();

    client = new MqttAndroidClient(this.getApplicationContext(), MQTTHOST, clientId);

    MqttConnectOptions options = new MqttConnectOptions();

    //options.setCleanSession(true);
    options.setUserName(USERNAME);
    options.setPassword(PASSWORD.toCharArray());

    try {
        IMqttToken token = client.connect(options);

        token.setActionCallback(new IMqttActionListener() {
            @Override
            public void onSuccess(IMqttToken asyncActionToken) {
                // We are connected
                Toast.makeText(MQTTMessageActivity.this, "Connected", Toast.LENGTH_LONG).show();
                setSubscribtion();
            }

            @Override
            public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
                // Something went wrong e.g. connection timeout or firewall problems
                Toast.makeText(MQTTMessageActivity.this, "Connected Failed", Toast.LENGTH_LONG).show();
            }
        });

    } catch (MqttException e) {

        e.printStackTrace();

    }

    client.setCallback(new MqttCallback() {
        @Override
        public void connectionLost(Throwable cause) {

        }

        @Override
        public void messageArrived(String topic, MqttMessage message) throws Exception {

            subtext.setText(new String(message.getPayload()));

        }

        @Override
        public void deliveryComplete(IMqttDeliveryToken token) {

        }
    });

}

private void setSubscribtion() {

    try {

        client.subscribe(topicStr,0);

    } catch (MqttException e) {

        e.printStackTrace();

    }

}
}

Вывод в моем текстовом виде: - ronix / network.

Могу ли я узнать, в чем проблема?А как получить возвратную строку Json?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...