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