Я не могу подписаться на тему MQTT из своего приложения для Android.
Когда я вызываю функцию SubscribeToTopic, я получаю следующую ошибку
"subscription to UserName/feeds/Topic failed: not available"
Вот код для подписки
private void SubscribeToTopic(String TopicName, int Qos) {
try {
if (client.isConnected()) {
client.subscribe(TopicName, Qos, null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Log.d("Subscribtion", "Succeed");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Log.d("Subscribtion", "Failed", exception);
}
});
}
}
catch (MqttException exception)
{
Log.d("Subscribtion","Failed",exception);
}
}
ЗАМЕТКА: Я использую Eclipse Paho в качестве клиента MQTT и Adafruit IO в качестве брокера. TopicName — это что-то вроде UserName/feeds/Topic, а Qos — это 0
@BryanYuan, я проверяю соединение в 3-й строке, а затем пытаюсь подписаться.
Потратив несколько часов, наконец, нашел решение. С кодом проблем не было, я только перевел тему в общедоступный режим на панели управления Adafruit IO, и все заработало. Единственное, что я не могу понять, это почему можно подписаться на приватную тему из библиотеки Arduino, но это не работает в Android.
убедитесь, что вы уже подключились к Брокеру