Хотя я изменил свои библиотеки 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1' на "libs/serviceLibrary-release.aar", они все еще падают на Android 13 (мой телефон Redmi Note 11). Вот мой простой code подключения MQTT:
Поэтому, пожалуйста, помогите мне решить эту проблему! Спасибо всем!
Исправьте проблему сбоя с paho-mqtt android 13
package com.example.mqttconnection;
import android.os.Bundle;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import org.eclipse.paho.client.mqttv3.IMqttActionListener;
import org.eclipse.paho.client.mqttv3.IMqttToken;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import java.util.UUID;
import info.mqtt.android.service.Ack;
import info.mqtt.android.service.MqttAndroidClient;
public class MainActivity extends AppCompatActivity {
private MqttAndroidClient mqttAndroidClient;
private final String serverUri = "tcp://broker.hivemq.com:1883 "; // Thay đổi URI nếu cần
private final String clientId = UUID.randomUUID().toString();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
connectMqtt();
}
private void connectMqtt() {
mqttAndroidClient = new MqttAndroidClient(getApplicationContext(), serverUri, clientId, Ack.AUTO_ACK);
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(true);
mqttAndroidClient.connect(options, null, new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Toast.makeText(MainActivity.this, "Connected successfully", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Toast.makeText(MainActivity.this, "Failed to connect", Toast.LENGTH_SHORT).show();
}
});
}
}
Илья
Вопрос задан3 июня 2024 г.