android - MQTT 未解析参考 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(...)
推荐阅读
- git - 使用 Git Bash 从 GitHub 克隆分支的特定提交
- java - Android:当我在另一个活动中时,如何保持倒数计时器运行并在超时时显示一条消息?
- fipy - fipy中计算残差的公式是什么?
- javascript - 如何在 JS 中使用参数启动数百个异步函数
- pyspark - pyspark中的异或逻辑条件
- pug - 有没有办法在 Pug 中插入 mixin?
- c++ - 映射为成员变量在插入时引发读取访问冲突
- python - Detectron2 - 在目标检测阈值处提取区域特征
- flutter - 页面网址没有变化,但页面内容变化良好
- excel - 更改工作表所有单元格中的工作簿引用