繁体   English   中英

MQTT未解析参考Android Studio

[英]MQTT Unresolved Reference Android Studio

我有一些代码是我从网站上派生的,但是我不知道如何解决此错误:“未解决的参考:setCallback”

下面是我的代码:

  fun MqttHelper(context: Context) {
    mqttAndroidClient = MqttAndroidClient(context, serverUri, clientId)
    mqttAndroidClient?.setCallback(object : MqttCallbackExtended {
        override fun connectComplete(b: Boolean, s: String) {
            Log.w("mqtt", s)
        }

        override fun connectionLost(throwable: Throwable) {

        }

        @Throws(Exception::class)
        override fun messageArrived(topic: String, mqttMessage: MqttMessage) {
            Log.w("Mqtt", mqttMessage.toString())
        }

        override fun deliveryComplete(iMqttDeliveryToken: IMqttDeliveryToken) {

        }
    })
    connect()
}

fun setCallback(callback: MqttCallbackExtended) {
    mqttAndroidClient.setCallback(callback)
}


 //in onCreate()
 //This one has the error

 mqttHelper.setCallback(object : MqttCallbackExtended {
        override fun connectComplete(b: Boolean, s: String) {

        }

        override fun connectionLost(throwable: Throwable) {

        }

        @Throws(Exception::class)
        override fun messageArrived(topic: String, mqttMessage: MqttMessage) {
            Log.w("Debug", mqttMessage.toString())
            dataReceived.setText(mqttMessage.toString())
        }

        override fun deliveryComplete(iMqttDeliveryToken: IMqttDeliveryToken) {

        }
    })

如果有人知道如何解决这个问题,那就太好了,谢谢。

您必须创建一个类,例如MqttHelper.kt ,如下所示:

class MqttHelper(context: Context) {

    var mqttAndroidClient: MqttAndroidClient

    init {
        val serverUri = "serverUri"
        val clientId = "client-id"
        mqttAndroidClient = MqttAndroidClient(context, serverUri, clientId)
        mqttAndroidClient.setCallback(object : MqttCallbackExtended {
            override fun connectComplete(b: Boolean, s: String) {
                Log.w("mqtt", s)
            }

            override fun connectionLost(throwable: Throwable) {

            }

            @Throws(Exception::class)
            override fun messageArrived(topic: String, mqttMessage: MqttMessage) {
                Log.w("Mqtt", mqttMessage.toString())
            }

            override fun deliveryComplete(iMqttDeliveryToken: IMqttDeliveryToken) {

            }
        })
        mqttAndroidClient.connect()
    }

    fun setCallback(callback: MqttCallbackExtended) {
        mqttAndroidClient.setCallback(callback)
    }
}

并在您的活动中使用

var mqttHelper = MqttHelper(this)
mqttHelper.setCallback(...) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM