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. 图像翻译 相关 跨物种
  2. mysql io模型_5种网络IO模型
  3. Linux下设置主机的FQDN
  4. 服务器怎么查看性能,查看服务器进程性能查看
  5. PowerDesigner逆向工程从SqlServer数据库生成PDM(图文教程)
  6. java JNI调用C语言动态链接库(java.lang.UnsatisfiedLinkError: no yourClassName in java.library.path 异常的解决方法)
  7. realloc 用方法
  8. 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础
  9. CCF201412-2 Z字形扫描(100分)
  10. c++ 调用windows tts_有关调用约定的历史 – 第三部分
  11. easyui_datagrid模板代码
  12. linux邮件报警命令,linux 邮件报警,监控内存cup
  13. python判断文字是否是中文
  14. 麒麟系统编译网卡驱动
  15. 图片制作、LOGO制作、ICO文件
  16. 查看链接文件的最终目标的多种方法
  17. seo入门最重要的是什么?
  18. ArcGIS实验教程——实验二十:ArcGIS数字高程模型DEM建立
  19. PON串口链接上网步骤
  20. python画运动物体的轨迹_canvas动画—圆形扩散、运动轨迹

热门文章

  1. [jQuery] jQuery的attr和prop方法有什么区别?
  2. 工作293:调节删除顺序删除
  3. 工作191:loading不声明
  4. 工作32:get之前打印
  5. 前端学习(2201):mutation提交风格
  6. 前端学习(1604):脚手架props与state
  7. 前端学习(1372):构建模块化路由
  8. 前端学习(713)创建数组
  9. 计算机操作系统(3):操作系统的基本特征
  10. jenkins安装环境搭建(3)