From 845bb16392e6b47ec31147d0e7c6ddc39537f2e7 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期三, 16 二月 2022 13:05:21 +0800
Subject: [PATCH] 解密有问题后不往上层发

---
 HDLSDK/hdl-common/build.gradle                                                        |    2 
 HDLSDK/hdl-connect/build.gradle                                                       |    2 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java        |    5 ++
 HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/TcpClient.java              |   23 +++++++----
 HDLSDK/hdl-socket/build.gradle                                                        |    2 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java |   26 +++++++++----
 HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java                    |    2 
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java                             |   23 ++++++-----
 8 files changed, 54 insertions(+), 31 deletions(-)

diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index 7a6d0e9..aed7414 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -71,7 +71,10 @@
         super.onDestroy();
         removeAllTopicsListener();
     }
-
+void init(){
+    HDLLinkConfig.getInstance().setLocalSecret("7d04c4e3c2b7d600");
+    HDLLinkConfig.getInstance().setGatewayId("1473119283609321473");
+}
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -80,7 +83,7 @@
         tv = findViewById(R.id.state_tv);
         rv = findViewById(R.id.rv);
         rv.setLayoutManager(new LinearLayoutManager(this));
-
+         init();
         checkIfCertified();
         initDeviceInfo();
         registerAllTopicsListener();
@@ -276,15 +279,15 @@
         tv.setText("寮�濮嬪叆缃戣璇�...");
         //璁よ瘉鎻愪氦鍙傛暟鍑嗗
 
-//        //娴嬭瘯鏈嶅姟
-//        String spkStr = "ir.module";//浜у搧spk
-//        String macStr = "AA000000000000BB";//璁惧鍞竴MAC鍦板潃
-//        String secret = "87ae414b7a853f65";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+        //娴嬭瘯鏈嶅姟
+        String spkStr = "ir.module";//浜у搧spk
+        String macStr = "AA000000000000BB";//璁惧鍞竴MAC鍦板潃
+        String secret = "87ae414b7a853f65";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
 
-        //姝e紡鏈嶅姟鍣�
-        String spkStr = "screen.mirror";//浜у搧spk
-        String macStr = "AA000000000000AC";//璁惧鍞竴MAC鍦板潃
-        String secret = "ee62124c151b737c";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
+//        //姝e紡鏈嶅姟鍣�
+//        String spkStr = "screen.mirror";//浜у搧spk
+//        String macStr = "AA000000000000AC";//璁惧鍞竴MAC鍦板潃
+//        String secret = "ee62124c151b737c";//閫氳繃spk鍜宮ac鎻愪氦浜戠璁よ瘉鍚庡垎閰嶇殑secret
 
         String mac_key = stringToMD5(stringToMD5(macStr + secret));
         String versionString = "HDL_V1.0.1";//
diff --git a/HDLSDK/hdl-common/build.gradle b/HDLSDK/hdl-common/build.gradle
index dc0beb2..3a82524 100644
--- a/HDLSDK/hdl-common/build.gradle
+++ b/HDLSDK/hdl-common/build.gradle
@@ -9,7 +9,7 @@
         minSdkVersion rootProject.minSdkVersion
         targetSdkVersion rootProject.targetSdkVersion
         versionCode 2
-        versionName "1.0.3"
+        versionName "1.0.5"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
diff --git a/HDLSDK/hdl-connect/build.gradle b/HDLSDK/hdl-connect/build.gradle
index 6391fed..a9a5cd7 100644
--- a/HDLSDK/hdl-connect/build.gradle
+++ b/HDLSDK/hdl-connect/build.gradle
@@ -9,7 +9,7 @@
         minSdkVersion rootProject.minSdkVersion
         targetSdkVersion rootProject.targetSdkVersion
         versionCode 2
-        versionName "1.0.3"
+        versionName "1.0.5"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
index 49c705a..949b7e9 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
@@ -3,6 +3,7 @@
 import android.text.TextUtils;
 
 import com.hdl.sdk.common.config.TopicConstant;
+import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.SPUtils;
 import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
 import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
@@ -114,12 +115,16 @@
     }
 
     public String getLocalSecret() {
+        LogUtils.i("HDLLinkConfig","瀵嗛挜鏄�:"+localSecret);
         return localSecret;
     }
 
     public String getGatewayId() {
         return gatewayId;
     }
+    public void setGatewayId(String gatewayId) {
+        this.gatewayId=gatewayId;
+    }
 
     public String getIpAddress() {
         return ipAddress;
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
index 56fcc58..0d20188 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
@@ -1,8 +1,12 @@
 package com.hdl.sdk.connect.protocol;
 
 
+import android.os.Build;
 import android.util.Log;
 
+import androidx.annotation.RequiresApi;
+
+import com.google.gson.internal.bind.DateTypeAdapter;
 import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.connect.config.HDLLinkConfig;
 import com.hdl.sdk.common.event.EventDispatcher;
@@ -13,6 +17,7 @@
 import com.hdl.sdk.socket.codec.ByteToMessageDecoder;
 
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 
 /**
@@ -111,6 +116,7 @@
         }
     }
 
+    @RequiresApi(api = Build.VERSION_CODES.O)
     @Override
     protected synchronized LinkResponse decoder(Object msg) throws Exception {
         if (msg instanceof byte[]) {
@@ -154,18 +160,22 @@
                 if (HDLLinkConfig.getInstance().ifNeedEncrypt(response.getTopic())) {
                     //闇�瑕佽В瀵�
                     byte[] bodyBytes = AesUtil.aesDecrypt(body, HDLLinkConfig.getInstance().getLocalSecret());
-//                        byte[] bodyBytes = AESUtils.decryptAES(body,AuthenticateConfig.getInstance().getLocalSecret());
                     if (bodyBytes != null) {
-                        response.setData(new String(bodyBytes, "utf-8"));
-//                            LogUtils.i("TAG", "瑙e瘑 涓婚锛�"+response.getTopic()+ " body: "+response.getData());
+                        body = bodyBytes;
                     } else {
-                        //瑙e瘑澶辫触锛岃繑鍥炲師鏁版嵁
-                        response.setData(new String(body, "utf-8"));
+                        try {
+                            LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.getEncoder().encodeToString(body));
+                        } catch (Exception e) {
+                        }
                     }
-
-                } else {
-                    response.setData(new String(body, "utf-8"));
                 }
+
+                String bodyString = new String(body, "utf-8");
+                //闈炴甯告暟鎹紝杩斿洖
+                if (!(bodyString.startsWith("{") || bodyString.startsWith("["))) {
+                    continue;
+                }
+                response.setData(bodyString);
                 LogUtils.i( "LinkMessageDecoder->decoder:" + response.getTopic() + "\r\n" + response.getData());
                 //瑙f瀽瀹屾垚,topic鍙戦�佷竴娆�
                 EventDispatcher.getInstance().post(response.getTopic(), response);
diff --git a/HDLSDK/hdl-socket/build.gradle b/HDLSDK/hdl-socket/build.gradle
index c7d6c5c..e4bdbc4 100644
--- a/HDLSDK/hdl-socket/build.gradle
+++ b/HDLSDK/hdl-socket/build.gradle
@@ -9,7 +9,7 @@
         minSdkVersion rootProject.minSdkVersion
         targetSdkVersion rootProject.targetSdkVersion
         versionCode 2
-        versionName "1.0.3"
+        versionName "1.0.5"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         consumerProguardFiles "consumer-rules.pro"
diff --git a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
index fda635c..74e0940 100644
--- a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
+++ b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java
@@ -64,7 +64,7 @@
             connected=true;
             client.onConnectStatus(ConnectStatus.CONNECTED);
         }catch(Exception e) {
-            LogUtils.e(e.getMessage());
+            LogUtils.e("杩炴帴寮傚父"+e.getMessage());
         }
     }
 
diff --git a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/TcpClient.java b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/TcpClient.java
index 3f3c359..db3bbcc 100644
--- a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/TcpClient.java
+++ b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/TcpClient.java
@@ -3,6 +3,7 @@
 
 
 import com.hdl.sdk.common.utils.ByteUtils;
+import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.ThreadToolUtils;
 import com.hdl.sdk.socket.SocketBoot;
 import com.hdl.sdk.socket.SocketOptions;
@@ -15,6 +16,7 @@
 import java.io.OutputStream;
 import java.net.InetSocketAddress;
 import java.net.Socket;
+import java.net.SocketAddress;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -67,12 +69,14 @@
 
     @Override
     public void connect() throws Exception {
+
         mSocket = getSocket();
-        SocketOptions options = getOptions();
-        mSocket.connect(new InetSocketAddress(ip, port));
+//        SocketOptions options = getOptions();
+        mSocket.connect(new InetSocketAddress(ip, port), 3 * 1000);
         mSocket.setTcpNoDelay(true);
         mSocket.setReuseAddress(true);
         mSocket.setKeepAlive(true);
+        mSocket.setSoTimeout(20 * 1000);
 
         tcpClientList.add(this);
     }
@@ -103,12 +107,17 @@
     public void onHandleResponse() throws Exception {
         final InputStream stream = getInputStream();
         if (stream != null && getOptions() != null) {
-            int len=0;
-            while ( (len=getInputStream().read(readBuffer)) != -1) {
+            while ( true) {
+                int len=getInputStream().read(readBuffer);
+                if(len<=0){
+                    throw  new Exception("鎺ユ敹寮傚父锛屾帴鏀舵暟鎹暱搴en="+len);
+                }
+
                 IHandleMessage handleMessage = getOptions().getHandleMessage();
                 if (handleMessage != null) {
                     byte []bytes = new byte[len];
                     System.arraycopy(readBuffer,0,bytes,0,len);
+                    LogUtils.i("鏀跺埌TCP鏁版嵁",new String(bytes));
                     //瀹屾暣鐨勬暟鎹墠鍥炶皟
                     handleMessage.read(bytes);
                 }
@@ -120,14 +129,10 @@
     public void sendMsg(byte[] msg) throws Exception {
         final OutputStream outputStream = getOutStream();
         if (outputStream != null && getOptions() != null) {
-            try {
                 IHandleMessage handleMessage = getOptions().getHandleMessage();
                 handleMessage.write(handleMessage.write(msg));
-                getOutStream().write(msg);
-
-            } finally {
+                outputStream.write(msg);
                 outputStream.flush();
-            }
         }
     }
 

--
Gitblit v1.8.0