android studio 使用MQTT协议连接onenet 注意事项和相关函数

这篇具有很好参考价值的文章主要介绍了android studio 使用MQTT协议连接onenet 注意事项和相关函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、注意事项:
1.添加依赖:
    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
    implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
2.在注册表允许打开网络
    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"            tools:ignore="ProtectedPermissions" />
    <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_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
3.在<application     </application>之间添加用于支持 MQTT(Message Queuing Telemetry Transport)通信协议的 Eclipse Paho Android 服务。
<service android:name="org.eclipse.paho.android.service.MqttService"/>
4.打开项目中的 gradle.properties 文件,并确保以下属性设置为true------更新所有的支持库到AndroidX中。
android.useAndroidX=true
android.enableJetifier=true
二、程序实现:
1.建立onenet连接
private void connectToMQTT() {
        String serverUri = "tcp://183.230.40.39:6002";
        String clientId = "设备ID";
        String username = "产品ID";
        String password = "鉴权信息";

        mqttClient = new MqttAndroidClient(this, serverUri, clientId);

        MqttConnectOptions options = new MqttConnectOptions();
        options.setUserName(username);
        options.setPassword(password.toCharArray());

        try {
            mqttClient.connect(options, null, new IMqttActionListener() {
                @Override
                public void onSuccess(IMqttToken asyncActionToken) {
                    // 连接成功(订阅主题)
                    subscribeToTopic();
                }

                @Override
                public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
                    // 连接失败
                    exception.printStackTrace();
                }
            });
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
2.订阅主题
private void subscribeToTopic() {
        String topic = "data/#";
        int qos = 1;

        try {
            mqttClient.subscribe(topic, qos, null, new IMqttActionListener() {
                @Override
                public void onSuccess(IMqttToken asyncActionToken) {
                    // 订阅成功
                }

                @Override
                public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
                    // 订阅失败
                    exception.printStackTrace();
                }
            });

            mqttClient.setCallback(new MqttCallback() {
                @Override
                public void connectionLost(Throwable cause) {
                    // 处理连接丢失的情况
                }

                @Override
                public void messageArrived(String topic, MqttMessage message) throws Exception {
                    // 处理收到的消息
                    String data = new String(message.getPayload());
                    if(data.indexOf("temp")!=-1)
                    {

                    }
                }

                @Override
                public void deliveryComplete(IMqttDeliveryToken token) {
                    // 处理消息发送完成的情况
                }
            });
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
3.发布消息
private void publishDataToMQTT() {
        String topic = "cmd/water";
        String payload = "flag:"+count;
        int qos = 1;

        try {
            MqttMessage message = new MqttMessage(payload.getBytes());
            message.setQos(qos);

            mqttClient.publish(topic, message);
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }
4.断开onenet连接
private void disconnectFromMQTT() {
        try {
            mqttClient.disconnect();
        } catch (MqttException e) {
            e.printStackTrace();
        }
    }

下面就是连接成功后的效果图 

安卓端使用mqtt连接到onenet,android studio,android文章来源地址https://www.toymoban.com/news/detail-858303.html

到了这里,关于android studio 使用MQTT协议连接onenet 注意事项和相关函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32+ESP8266+DHT11通过MQTT协议连接新版ONENET云平台上传数据

    项目讲解视频 新版 云平台搭建视频演示 单片机代码修改演示视频 APP参数修改 实物演示 前段时间ONENET云平台进行了升级更新,此前平台的多协议接入(包含旧版MQTT、HTTP、EDP、Modbus、TCP透传等)接口已经隐藏,后续应该会下架,为了能够后续继续使用ONENET云平台,就需要学

    2024年02月09日
    浏览(27)
  • OneNet平台使用可视化界面(MQTT协议)

    项目效果: 在OneNet平台建立一个可视化界面,实现效果是下位机的温度,湿度可以在该界面显示,同时该界面可以控制下位机的灯亮与灭。 搭建环境: 软件:keil(编写C语言-修改硬件的程序)+onenet平台(建立可视化界面-上位机功能); 硬件:野火指南者开发板; 可视化界面:

    2024年02月05日
    浏览(37)
  • 2023年最新的OneNet版本使用介绍(MQTT协议)

    OneNet在2023年4月23日,对NB-IoT套件、MQTT套件、和物生活平台进行融合升级,升级后的新版OneNET物联网开放平台将通过统一的入口。 之前写的教程里都是以原旧版本的MQTT套件为主,现在升级新版本之后,之前的教程截图就不适用了。很多小伙伴不知道新版本的OneNet如何使用,当

    2024年02月06日
    浏览(28)
  • wxbit appinventor 使用MQTT客户端连接onenet时的坑

    在最近使用wxbit中的MQTT客户端时遇见一些小问题,在开始不知道具体怎么连接上自己的onenet产品,后面通过查阅资料解决了问题 写下这篇博客是为了记录相关问题 将mqtt客户端拖入后,点击MQTT客户端,便可以查看组件属性 上图4个属性决定的你连接的是哪个服务器和哪个设备

    2024年02月05日
    浏览(43)
  • MQTT协议(新版)接入OneNET平台

    MQTT.fx (用于模拟设备接入) token (计算密钥工具) 首先我们先进入到中移物联官方网站:https://open.iot.10086.cn/ 点击左上角产品服务→基础服务→MQTT物联网套件,然后点击屏幕上方【 立即使用 】,进入MQTT协议平台 接下来点击屏幕上【 添加产品 】,如下图添加一个产品,可参考:官方

    2024年02月08日
    浏览(31)
  • 采用MQTT协议实现Android APP与阿里云平台的连接

    相信APP+单片机是很多同学毕设或者课设的模式,上学期做课设的时候用到了MQTT协议连接阿里云平台实现数据的通信,也是根据网上大佬的经验做的,中间也踩了很多坑。本文将介绍Android APP 通过MQTT协议与阿里云云平台连接的内容,希望对大家能有所帮助。 MQTT(Message Que

    2024年02月04日
    浏览(33)
  • 新版ONENET物联网开放平台AT+MQTT指令连接

    ONENET物联网平台自4月28日更新后,暂时没有完整的教程,本文目的旨在帮助大家通过AT+MQTT指令连接到ONENET云平台: 本教程在B站录制有视频教程两个教程结合使用效果更佳: 新版ONENET物联网开放平台ESP8266的AT+MQTT固件库串口通信模拟连接_哔哩哔哩_bilibili 新版ONENET物联网开放

    2024年02月08日
    浏览(30)
  • 基于STM32和oneNET云平台的数据采集系统(MQTT协议)

    该篇为基于stm32+esp8266通过 mqtt 协议连接 onenet 物联网云平台,单片机部分将采集到的数据(温湿度、光照强度、压强等等)上传至云平台服务器,云平台可下发指令操控单片机,实现远程通信。 1. 第一步,注册账号后点击右上角 控制台 2. 第二步,看左上角 选择切换旧版本 3.

    2024年02月06日
    浏览(39)
  • (Onenet)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到Onenet物联网平台

    1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内(注意不要弄错方向) 同时接入天线 2.2 连接ST-Link仿真器 用3条杜邦线接入STM32L的 DIO、GND、CLK中 另

    2024年02月15日
    浏览(26)
  • 【ESP8266】使用MQTT协议 连接华为云iotDA,实现设备属性上报

    相关资料:https://github.com/CQUPTLei/ESP8266 往期文章:【ESP8266】基础AT指令和常用WIF指令 【MQTT 5.0】协议 ——发布订阅模式、Qos、keepalive、连接认证、消息结构 华为云物联网平台 (IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包