前言
MQTT
(Message Queuing Telemetry Transport,消息队列遥测传输),基于发布/订阅范式的消息协议,是一种极其简单和轻量级的消息协议,专为受限设备和低带宽、高延迟或不可靠的网络设计。今天主要说明一下MQTT
协议在Android中进行消息的收发应用,关于MQTT
协议的基础内容请参考之前介绍的 MQTT
协议 相关内容。
效果
使用前先查看一下简单的效果图,MQTT
相关的连接、订阅,发送及接收:
使用过程
- 依赖添加
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
实际使用中发现,如果仅用第一条依赖也是能够实现我们所需要的的消息收发功能的,其中MqttClient
类实现了MQTT
相关的连接、订阅、发送及接收功能,第二条依赖是基于MqttClient
针对Android客户端进行封装了MqttAndroidClient
进行使用,其中实现了Android相关的广播、服务相关内容。
使用中如果采用的是Androidx
开发环境,还需要添加如下依赖,否则MqttAndroidClient
服务中会找不到本地广播服务,导致无法运行使用。
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- 权限添加
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
- 服务添加
<service android:name="org.eclipse.paho.android.service.MqttService"/>
这里我们主要介绍
MqttClient
类实现的MQTT
协议消息的收发,而进一步封装的MqttAndroidClient
和其使用过程基本类似,想要查看其具体使用,可跳转对应Demo链接获取详细内容。