HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-common/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-connect/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-socket/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketBoot.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/TcpClient.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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和mac提交云端认证后分配的secret //测试服务 String spkStr = "ir.module";//产品spk String macStr = "AA000000000000BB";//设备唯一MAC地址 String secret = "87ae414b7a853f65";//通过spk和mac提交云端认证后分配的secret //正式服务器 String spkStr = "screen.mirror";//产品spk String macStr = "AA000000000000AC";//设备唯一MAC地址 String secret = "ee62124c151b737c";//通过spk和mac提交云端认证后分配的secret // //正式服务器 // String spkStr = "screen.mirror";//产品spk // String macStr = "AA000000000000AC";//设备唯一MAC地址 // String secret = "ee62124c151b737c";//通过spk和mac提交云端认证后分配的secret String mac_key = stringToMD5(stringToMD5(macStr + secret)); String versionString = "HDL_V1.0.1";// 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" 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" 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; 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", "解密 主题:"+response.getTopic()+ " body: "+response.getData()); body = bodyBytes; } else { //解密失败,返回原数据 response.setData(new String(body, "utf-8")); try { LogUtils.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()); //解析完成,topic发送一次 EventDispatcher.getInstance().post(response.getTopic(), response); 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" 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()); } } 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("接收异常,接收数据长度len="+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(); } } }