From 0a8fd4aa92555875f58f67144c2c0c0a20a200af Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 20 八月 2024 09:57:13 +0800
Subject: [PATCH] 增加版本通过配置读取

---
 /dev/null                                                                      |    0 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/socket/client/TcpClient.java      |    2 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java |   45 ++++++++++++++++++++++
 HDLSDK/build.gradle                                                            |    4 +-
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java     |   11 +++--
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/HDLSdk.java                |   14 +++++-
 6 files changed, 65 insertions(+), 11 deletions(-)

diff --git a/HDLSDK/build.gradle b/HDLSDK/build.gradle
index 9137082..048925e 100644
--- a/HDLSDK/build.gradle
+++ b/HDLSDK/build.gradle
@@ -5,7 +5,7 @@
         google()
         jcenter()
         mavenCentral()
-        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
         maven { url = uri("https://plugins.gradle.org/m2/") }
         maven {
             url "https://jitpack.io"
@@ -24,7 +24,7 @@
         maven { url 'https://maven.aliyun.com/repository/google' }
         maven { url 'https://maven.aliyun.com/repository/jcenter' }
         maven { url 'https://maven.aliyun.com/repository/public' }
-        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
         maven { url = uri("https://plugins.gradle.org/m2/") }
         google()
         jcenter()
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/HDLSdk.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/HDLSdk.java
index 05fc32a..41b71e5 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/HDLSdk.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/HDLSdk.java
@@ -1,6 +1,7 @@
 package com.hdl.sdk.common;
 
 import android.content.Context;
+import android.content.pm.PackageInfo;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -32,10 +33,17 @@
      * @return
      */
     public String getVersion() {
-        return version;
+        try {
+            PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
+            String versionName = packageInfo.versionName; // 鐗堟湰鍚嶇О锛堝瓧绗︿覆锛�
+            return versionName;
+        } catch (Exception e) {
+            LogUtils.e("鑾峰彇鐗堟湰澶辫触:" + e.getMessage());
+        }
+        return "unknow";
     }
 
-    private String version = "1.1.7";
+//    private String version = "1.1.7";
 
     private HDLSdk() {
     }
@@ -55,7 +63,7 @@
         this.context = context.getApplicationContext();
         HDLAuthSocket.getInstance().init();
         HDLSocket.getInstance().broadcastRequest();
-        LogUtils.i("HDLSdk Version:" + version);
+        LogUtils.i("HDLSdk Version:" + getVersion());
 
         //璁㈤槄鎵�鏈夌殑涓婚
         HDLLink.getInstance().registerAllTopicsListener(new EventListener() {
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
index a14bc66..950e4aa 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -557,6 +557,51 @@
     }
 
     /**
+     * 閫氱敤鍙戦�佹寚浠�
+     * 鍙戦�佷竴娆�
+     *
+     * @param topic     鍙戦�佹暟鎹�
+     * @param bodyStr   鍥炲鐨勪富棰�
+     * @param broadcast 鏄惁瑕佸箍鎾�
+     * @param callBack  鍥炶皟
+     */
+    public void udpSendMsgOneTime(String topic, String bodyStr, boolean broadcast, HDLLinkResponseCallBack callBack) {
+        if (TextUtils.isEmpty(topic) || TextUtils.isEmpty(bodyStr)) {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_NULL_ERROR));
+            }
+            return;
+        }
+
+        if (!HDLLinkConfig.getInstance().checkIfCertified()) {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UNAUTHORIZED_ERROR));
+            }
+            return;
+        }
+
+        LinkRequest message = new LinkRequest(topic, bodyStr);
+        String ip = HDLLinkConfig.getInstance().getIpAddress();
+        if (broadcast) {
+            ip = IpUtils.getBroadcastAddress();
+        }
+        HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message,"", 1, new HdlSocketHelper.HdlSocketListener() {
+                    @Override
+                    public void onSucceed(Object msg) {
+                        if (callBack == null) return;
+                        callBack.onSuccess((LinkResponse) msg);
+                    }
+
+                    @Override
+                    public void onFailure() {
+                        if (callBack == null) return;
+                        callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_TIMEOUT_ERROR));
+                    }
+                }
+        );
+    }
+
+    /**
      * 閫氱敤鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙�
      *
      * @param topic     鍙戦�佹暟鎹�
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
index 1ea5d10..56a047d 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -109,7 +109,7 @@
             public void run() {
                 while (true) {
                     try {
-                        Thread.sleep(1000);
+                        Thread.sleep(5000);
 //                        LogUtils.i("checkIfCertified=" + HDLLink.getInstance().checkIfCertified() + " getTcp().connected=" + getTcp().connected);
                         try {
                             if (!HDLLink.getInstance().checkIfCertified() || (!TextUtils.isEmpty(getTcpIp()) && getTcp().connected)) {
@@ -473,14 +473,15 @@
         }
     }
 
-    public SocketBoot getTcp() throws RuntimeException {
-        if (TextUtils.isEmpty(getTcpIp())) {
+    public synchronized SocketBoot  getTcp() throws RuntimeException {
+        String gatewayIpAddress=getTcpIp();
+        if (TextUtils.isEmpty(gatewayIpAddress)) {
             LogUtils.e("璇锋悳绱㈢綉鍏�");
             throw new RuntimeException("璇锋悳绱㈢綉鍏�");
         }
         //濡傛灉娌℃湁鍒濆鍖栵紝鎴栬�呯綉鍏矷P鏇存敼浜嗭紝灏遍噸鏂板垵濮嬪寲
-        if (tcpBoot == null || !getTcpOptions().getIp().equals(getTcpIp())) {
-            tcpBoot = TcpClient.init(getTcpIp(), getTcpPort(), getTcpOptions());
+        if (tcpBoot == null || !getTcpOptions().getIp().equals(gatewayIpAddress)) {
+            tcpBoot = TcpClient.init(gatewayIpAddress, getTcpPort(), getTcpOptions());
             tcpBoot.SetHeartbeat(new IHeartbeat() {
                 @Override
                 public void heartbeat() {
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/socket/client/TcpClient.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/socket/client/TcpClient.java
index 7469cc3..742f1bd 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/socket/client/TcpClient.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/socket/client/TcpClient.java
@@ -109,7 +109,7 @@
         final InputStream stream = getInputStream();
         if (stream != null && getOptions() != null) {
             while ( true) {
-                int len=getInputStream().read(readBuffer);
+                int len=stream.read(readBuffer);
                 if(len<=0){
                     throw  new Exception("鎺ユ敹寮傚父锛屾帴鏀舵暟鎹暱搴en="+len);
                 }
diff --git a/HDLSDK_DEMO.rar b/HDLSDK_DEMO.rar
deleted file mode 100644
index c293162..0000000
--- a/HDLSDK_DEMO.rar
+++ /dev/null
Binary files differ

--
Gitblit v1.8.0