当前位置:   article > 正文

跟我做,让Android封装MQTT连接阿里云平台!【开源】_跟我做,让安卓封装mqtt

跟我做,让安卓封装mqtt

《每谈及物联网都难以离开的MQTT协议!》中,我们使用了模拟的方式让MQTT接入阿里云云服务器。但是我们实际中使用时却不能模拟,每一步都得自己调,毫无疑问会非常的麻烦。那么我们必须把这些指令和操作写在程序中,让其自动、智能地运行。

以下是我们将MQTT协议和连接阿里云平台的操作通过Android studio写入app中,并简单设计UI。实现手机app远程控制单片机LED灯亮灭的功能。

app源码:https://github.com/Liangyz2019/IoT-LED-APP-

首先,我们得引入mqtt.jar

选取org.eclipse.paho.client.mqttv3/1.2.2/org.eclipse.paho.client.mqttv3-1.2.2.jar下载

jar包拷贝到新工程的app/libs目录并导入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
AndroidManifest添加网络权限

</application>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>
  • 1
  • 2
  • 3

MainActivity添加包

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;


import com.example.test.AliyunIoTSignUtil;

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;

import java.io.IOException;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在public class MainActivity extends AppCompatActivity {}中
初始定义一些基本信息

 private static final String TAG =MainActivity.class.getSimpleName();

    private TextView msgTextView;

    private String productKey="a16OKk6dTya";
    private String deviceName="KAMI";
    private String deviceSecret="8790bd0545dd874d77fcac85729fc4bf";

    private final String payloadJson1="{\"ParkingState\":1}";
    private final String payloadJson2="{\"ParkingState\":0}";
    private MqttClient mqttClient=null;

    final int POST_DEVICE_PROPERTIES_SUCCESS = 1002;
    final int POST_DEVICE_PROPERTIES_ERROR = 1003;

    private String responseBody = "";


    private Handler mHandler = new Handler() {
   
        @Override
        public void handleMessage(Message msg) {
   
            switch (msg.what) {
   
                case POST_DEVICE_PROPERTIES_SUCCESS:
                    showToast("发送数据成功");
                    break;
                case POST_DEVICE_PROPERTIES_ERROR:
                    showToast("post数据失败");
                    break;
            }
        }
    };
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

开始APP生命周期

  @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/536009
推荐阅读
相关标签
  

闽ICP备14008679号