Android使用EMQ搭建MQTT服务(kotlin版)
添加依赖
//noinspection GradleCompatible
implementation 'com.android.support:support-v4:4.4.1'
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.4'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
....
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MQTTProject">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--此处为添加库中的服务-->
<service android:name="org.eclipse.paho.android.service.MqttService" />
<!--此处为自行写入的服务-->
<service android:name=".MyService" android:enabled="true"/>
</application>
MyService服务代码
class MyService : Service() {
private lateinit var mMQttConnectOptions: MqttConnectOptions
companion object {
private lateinit var mQttClient: MqttAndroidClient
// 客户端唯一标识
const val CLIENT_ID = "kotlin"
// 发布者主题
const val PUBLISH_TOPIC = "topic_test"
// 响应主题
const val RESPONSE_TOPIC = "message_arrived"
// 服务器地址
const val HOST = "tcp://broker.emqx.io:1883"
// 用户名</