目的是为了实时监控室外广告屏的亮度,界面,声音,开关机等等…… 因为室外的网络情况是随时可变的,所以采用的MQTT协议,作为Android客户端来说因为用MQTT发送消息太繁琐,我们采用的是客户端只接收命令,然后用Http进行数据反馈,这个项目近期也做完了,故记录一下。
第一步:导入在线库
// mqtt 包导入 implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
第二步:声明广播(这个是在线库自带的 直接这么写就行,不用自己写这个service)
<service android:name="org.eclipse.paho.android.service.MqttService" />
第三步:MqttManager的全部代码
public class MqttManager {
public final static String TAG = MqttManager.class.getSimpleName();
@SuppressLint("StaticFieldLeak")
private static volatile MqttManager mInstance = null;
private MqttCallback mCallback;
public MqttClient client;
private MqttConnectOptions conOpt;
private Context context;
public String[] topic;
private MqttManager(Context context) {
mCallback = new MqttCallbackBus(context);
this.context = context;
}
public static MqttManager getInstance(Context context) {
if (mInstance == null) {
synchronized (MqttManager.class) {
if (mInstance == null) {
mInstance = new MqttManager(context);
}
}
}
return mInstance;
}
/**
* 释放单例, 及其所引用的资源
*/
public static void release() {
try {
if (mInstance != null) {
mInstance.disConnect();
mInstance = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建Mqtt 连接
*
* @param brokerUrl Mqtt服务器地址(tcp://xxxx:1863)
* @param userNam


1万+

被折叠的 条评论
为什么被折叠?



