1、最方便的方法,使用dlc的module连接mqtt

步骤、1——导入dlc依赖和module

//dlc_mqttmodule
implementation project(':garbagerecyclebox')//dlc公库
implementation('com.github.DlcAndroidTeam123456:DlcCommonLibrary:1.0.31-simple') {exclude group: 'me.yokeyword', module: 'fragmentation'
}

步骤、2——创建工具方法,调用即可

//        MqttProxy.init(this);//dlc的mqtt类使用
//        MqttMgr.get().publish();//dlc发送mqtt对象
MqttMgr.get().publish(MqttInformation.GDJBHSX_RECEIVE, 0, openBackBean);
public static final String GDJBHSX_RECEIVE = "sdfyhsx_receive/" + DeviceUtil.getAndroidId();
/*** @author : LGQ* @date : 2020/05/18 10* @desc :*/public class MqttProxy {private static Activity activity;public static void init(Context context) {activity = (Activity) context;DlcMqttConnectOptions dlcMqttConnectOptions = new DlcMqttConnectOptions(context,MqttInformation.SERVER_URI, MqttInformation.USER_NAME, MqttInformation.PASS_WORD);
//        MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_APKBG, 0);MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH, 0);LgqLogutil.e("主题地址===  "+MqttInformation.GDJBHSX_PUSH);
//        MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_UDCOMPANY, 0);
//        MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_ERRORKE, 0);
//        MqttMgr.get().addSubscribeTopics(MqttInformation.GDJBHSX_PUSH_UPDATEAPK, 0);MqttMgr.get().init(context, dlcMqttConnectOptions, new BaseMqttCallBack() {@Overridepublic void messageArrived(String topic, String message, int messageId) {handleMessageArrived(topic, message, messageId);
//                        ObServernotice.getInstance().notifyObserver(5481,5,message,null);LgqLogutil.e("mqtt注册成功sxxxx00000===   "+message);}@Overridepublic void onSuccess(DlcMqttToken asyncActionToken) {LgqLogutil.e("mqtt注册成功sxxxx");}@Overridepublic void onFailure(DlcMqttException e) {LgqLogutil.e("成功sxxxx1111111");}});}public static void onDestroy() {MqttMgr.get().onDestroy();activity = null;}private static void handleMessageArrived(String topic, String message, int messageId) {try {
//            JSONObject json = new JSONObject(message);
//            String typeName = json.getString("topic");LgqLogutil.e("返回数据====="+message);
//            switch (typeName) {
//
//            }} catch (Exception e) {e.printStackTrace();}Log.e("))))))))))))", "topic:" + topic + ",message:" + message + ",messageId:" + messageId);}
}

2、使用原生mqtt类实现mqtt推送以及上报数据

步骤、1——创建工具方法,调用即可

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
//        MqttProxy.init(this);//dlc的mqtt类使用
//        MqttMgr.get().publish();//dlc发送mqtt对象initMqtt();//原生mqtt类使用}private void initMqtt() {Looper.get().looper();}}

、、、、、、、、其余工具方法下载demo复制即可、、、、、、、、、、、、、、

/*** author:   meixi* Date:     2020/8/28* Desc:     mqtt初始化,心跳相关*/
public class Looper {private static class LooperHolder {static final Looper INSTANCE = new Looper();}public static Looper get() {return Looper.LooperHolder.INSTANCE;}private Looper() {//启动mqttDlcMqttConnectOptions mqttOption = new DlcMqttConnectOptions(App.sInstance, "tcp://120.77.72.190:18", "dlc", "123456", App.deviceId);mqttOption.setAutoReconnect(true);MqttManager.get().init(App.sInstance, mqttOption, new DLCMqttCallBack());MqttManager.get().subscribe(new String[]{"xmshzthg_toapk/" + App.deviceId, "xmshzthg_toapk/common"}, new int[]{0, 0});}@SuppressLint("CheckResult")public void looper() {Observable.interval(2, 30, TimeUnit.SECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Long>() {@Overridepublic void accept(Long aLong) {HeartbeatBean heartBean = App.heartBeatData;if (heartBean == null) {LogPlus.i("心跳数据为空,不做心跳上传");return;}heartBean.timestamp = getTime();heartBean.macno = App.deviceId;LogPlus.i("lgq", "温度--c111-上传心跳-  ");MqttManager.get().publish("xmshzthg_toback/" + App.deviceId, 0, heartBean);//todo 待验证,防止开始有心跳后来没心跳的情况,一直发送发送上一次的数据,导致异常在线状态的出现}});}public String getTime() {long time = System.currentTimeMillis() / 1000;//获取系统时间的10位的时间戳String str = String.valueOf(time);return str;}}

demo下载链接: https://download.csdn.net/download/meixi_android/12767464

云盘下载:https://pan.baidu.com/s/1Nl9aQW-l3SxSlwWdd60uew

在线bug交流:扣扣1085220040

Android 使用mqtt实例,包括接收服务器推送以及上传数据到服务器相关推荐

  1. 怎么把网页上传到服务器,如何把网页上传到云服务器

    如何把网页上传到云服务器 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云服 ...

  2. (0081)iOS开发之无限后台定位并上传数据到服务器

    关键词:ios 后台持续定位 iOS 后台的理解 // http://blog.csdn.net/u013773524/article/details/52153917 // http://blog. ...

  3. java服务器推送浏览器_前端如何让服务器主动向浏览器推送数据

    前言 前面我们已经聊了ajax,它的特点是浏览器必须先发起请求,服务器才能给出对应的响应,想一想能不能让服务器主动向浏览器推送数据呢?那么这篇文章我们来聊一聊服务器推送功能. 轮询 假设你现在需要去做 ...

  4. 怎么把手机文件导入华为云服务器,华为手机如何上传数据到云服务器

    华为手机如何上传数据到云服务器 内容精选 换一换 对象存储服务OBS是华为云提供的稳定.安全.高效.易用的云存储服务,具备标准Restful API接口,可存储任意数量和形式的非结构化数据.弹性文件服 ...

  5. html文件已传入服务器,把html文件上传到云服务器

    把html文件上传到云服务器 内容精选 换一换 为了实现通过NAT Server可使用SSH协议跳转到SAP HANA节点的功能,以及SAP HANA节点和NAT Server互相通过SSH协议跳转的 ...

  6. cs程序上传文件至web服务器,asp.net 程序上传到导服务器发生异常

    asp.net 程序上传到导服务器发生异常 來源:互聯網  2009-11-10 14:56:06  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: ...

  7. php文件如何上传到服务器,php文件怎么上传到云服务器

    php文件怎么上传到云服务器 内容精选 换一换 当服务器A和服务器B同时挂载同一文件系统C时,在服务器A上传文件,服务器B同步此文件时存在延时,而单独上传至服务器B则没有延时.需要在两个服务器的挂载参 ...

  8. 微信图片消息 服务器故障,解决图片上传到微信服务器后无法显示问题

    标签:attr   ict   viewport   使用   完全   example   cache   ber   copy vue项目里可以添加到app.vue 关于referrer 在页面引 ...

  9. xp系统怎么上传到ftp服务器,xp系统怎么上传到ftp服务器

    xp系统怎么上传到ftp服务器 内容精选 换一换 使用IEF时,您的边缘节点时间需要与UTC标准时间保持一致,否则会导致边缘节点的监控数据.日志上传出现偏差.您可以选择合适的NTP服务器进行时间同步, ...

最新文章

  1. 基于OEP30WD类音频功率放大器驱动电磁铁--以失败告终
  2. stm32内部的CAN总线
  3. 博野哪里学计算机呢,@博野大学生 2021年征兵开始了!
  4. Java Swagger的注释类是怎么被调用到的
  5. 用python设计学生管理系统_Django实现学生管理系统实例分享
  6. RabbitMQ消息队列应用
  7. Hibernate:More than one row with the given identifier was found解决办法
  8. MATLAB信号与系统分析(一)——连续时间信号与系统的时域分析
  9. mysql主从不同步监控_MySQL主从同步监控
  10. 标签条码打印机开发大纲
  11. 计算机二级二叉树知识,2018年计算机二级考试公共基础知识点:树与二叉树
  12. 差分进化算法用c语言实现,python 实现差分进化算法
  13. 微信小程序tap事件中target与currentTarget的区别
  14. kinetis FTM 分析笔记
  15. 计算机用word做海报,【2人回答】电脑Word怎么做海报?-3D溜溜网
  16. 语音识别-基础(一):简介【语音转文本】
  17. 2021 回头看看这一年
  18. 安卓加密软件_【winhex/Xways实战应用】安卓QQ卸载后的手工恢复实战
  19. 区分癌症细胞和非癌症细胞的方法
  20. 金立集团董事长-刘立荣-注意细节

热门文章

  1. [js] 不用 + eval Function 实现加法
  2. 前端学习(2361):下拉刷新的学习
  3. 前端学习(2242)以组件方式创建UI
  4. 前端学习(1936)vue之电商管理系统电商系统之再关闭对话框defkeys
  5. 前端学习(1916)vue之电商管理系统电商系统之绘制面包屑导航和卡片视图
  6. 微信小程序:生命周期
  7. 手游服务器验证,手游登录流程
  8. linux搭建spark集群,详解Spark+Zookeeper搭建高可用Spark集群
  9. Log4j的使用说明
  10. openfalcon架构及相关服务配置详解