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