Android paho mqtt завис на Android 13

1
9

Хотя я изменил свои библиотеки '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 г.

1 Ответ

Ваш ответ

Загрузить файл.