Приложение должно начать прослушивание темы 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?