From 17b81245f31d032d5eed69c190e42edb1949f46b Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 12 四月 2022 16:37:39 +0800
Subject: [PATCH] 修复接听后闪退的问题

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 15 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
index 36ac8c9..e5e993b 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -1,8 +1,8 @@
 package com.hdl.sdk.connect;
 
-import com.hdl.sdk.common.utils.IpUtils;
+import com.hdl.sdk.common.utils.LogUtils;
+import com.hdl.sdk.common.utils.ThreadToolUtils;
 import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
-import com.hdl.sdk.connect.bean.request.PropertyReadRequest;
 import com.hdl.sdk.connect.callback.HDLLinkCallBack;
 import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
 import com.hdl.sdk.connect.config.HDLLinkConfig;
@@ -11,10 +11,9 @@
 import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
 import com.hdl.sdk.connect.socket.HDLAuthSocket;
 import com.hdl.sdk.connect.socket.HDLSocket;
-import com.hdl.sdk.connect.socket.HdlSocketHelper;
-import com.hdl.sdk.socket.listener.SendListener;
 
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Created by jlchen on 11/15/21.
@@ -25,20 +24,20 @@
     /**
      * instance
      */
-    private volatile static HDLLink instance;
+    private  static final HDLLink instance=new HDLLink();
     /**
      * getInstance
      *
      * @return HDLLink
      */
-    public static synchronized HDLLink getInstance() {
-        if (instance == null) {
-            synchronized (HDLLink.class) {
-                if (instance == null) {
-                    instance = new HDLLink();
-                }
-            }
-        }
+    public static  HDLLink getInstance() {
+//        if (instance == null) {
+//            synchronized (HDLLink.class) {
+//                if (instance == null) {
+//                    instance = new HDLLink();
+//                }
+//            }
+//        }
         return instance;
     }
 
@@ -75,6 +74,7 @@
      * @param callBack 缁撴灉鍥炶皟
      */
     public void startAuthenticateRequest(AuthenticateRequest request, HDLLinkCallBack callBack) {
+        LogUtils.i("鍙戦�佽璇佽姹�");
         HDLAuthSocket.getInstance().startAuthenticateRequest(request,callBack);
     }
 
@@ -181,14 +181,25 @@
     }
 
     /**
-     * 閫氱敤UDP骞挎挱鍙戦�佹寚浠�
+     * 閫氱敤UDP鍙戦�佹寚浠�
      * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆�
      * @param topic 鍙戦�佹暟鎹�
      * @param bodyStr body鍐呭
      * @param callBack 鍥炶皟
      */
     public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
-        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, callBack);
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false, callBack);
+    }
+
+    /**
+     * 閫氱敤骞挎挱UDP鍙戦�佹寚浠�
+     * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆�
+     * @param topic 鍙戦�佹暟鎹�
+     * @param bodyStr body鍐呭
+     * @param callBack 鍥炶皟
+     */
+    public void udpBroadcastSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) {
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true, callBack);
     }
 
     /**
@@ -200,6 +211,38 @@
      * @param callBack 鍥炶皟
      */
     public void tcpSendMsg(String topic, String bodyStr, HDLLinkCallBack callBack) {
+        HDLAuthSocket.getInstance();//閫氳繃杩欎釜鍙互鍏堝垵濮嬪寲UDP鐩戝惉浜嬩欢
         HDLSocket.getInstance().tcpSendMsg(topic, bodyStr, callBack);
     }
+
+    /**
+     * 閫氱敤鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
+     *
+     * @param topic    鍙戦�佹暟鎹�
+     * @param bodyStr  鍥炲鐨勪富棰�
+     */
+    public void udpSendMsg(String topic, String bodyStr) {
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false);
+    }
+
+    /**
+     * 閫氱敤骞挎挱鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
+     *
+     * @param topic    鍙戦�佹暟鎹�
+     * @param bodyStr  鍥炲鐨勪富棰�
+     */
+    public void udpBroadcastSendMsg(String topic, String bodyStr) {
+        HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true);
+    }
+
+    /**
+     * 閫氱敤TCP鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
+     *
+     * @param topic    鍙戦�佹暟鎹�
+     * @param bodyStr  鍥炲鐨勪富棰�
+     */
+    public void tcpSendMsg(String topic, String bodyStr) {
+        HDLAuthSocket.getInstance();//閫氳繃杩欎釜鍙互鍏堝垵濮嬪寲UDP鐩戝惉浜嬩欢
+        HDLSocket.getInstance().tcpSendMsg(topic, bodyStr);
+    }
 }

--
Gitblit v1.8.0