From 881519bc1efeb83701e0ca44d026385db3d8509a Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期一, 18 九月 2023 13:27:44 +0800 Subject: [PATCH] 增加全局处理方法 --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java | 2 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java | 16 ----- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java | 67 +++++++++++++++++++++- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java | 66 --------------------- 4 files changed, 67 insertions(+), 84 deletions(-) diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java index 398429a..99db1bb 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java @@ -1,15 +1,23 @@ package com.hdl.sdk.common.utils; import android.text.TextUtils; +import android.util.Base64; +import android.util.Log; import com.google.gson.reflect.TypeToken; import com.hdl.sdk.common.config.TopicConstant; +import com.hdl.sdk.common.exception.HDLLinkException; import com.hdl.sdk.common.utils.gson.GsonConvert; +import com.hdl.sdk.connect.HDLLink; import com.hdl.sdk.connect.bean.LinkResponse; import com.hdl.sdk.connect.bean.request.GatewayRemoteEditRequest; +import com.hdl.sdk.connect.bean.response.DeviceDeleteResponse; import com.hdl.sdk.connect.bean.response.DeviceInfoResponse; +import com.hdl.sdk.connect.callback.HDLLinkCallBack; import com.hdl.sdk.connect.config.HDLLinkConfig; +import com.hdl.sdk.connect.socket.HDLAuthSocket; import com.hdl.sdk.connect.socket.HDLSocket; +import com.hdl.sdk.connect.utils.AesUtil; import java.time.chrono.IsoChronology; @@ -25,6 +33,9 @@ */ public static void manager(LinkResponse linkResponse) { try { + if(linkResponse==null){ + return; + } String topic = linkResponse.getTopic(); if (TextUtils.isEmpty(topic)) { return; @@ -46,8 +57,57 @@ if(isSameTopic(TopicConstant.GATEWAY_EDIT_REMOTE,topic)){ gatewayRemoteEditRequest(mac_Oid_GatewayId, linkResponse.getData()); } + else if(isSameTopic(TopicConstant.GATEWAY_SEARCH,topic)){ + HDLAuthSocket.getInstance().UploadGatewayInfo(null); + } + else if(isSameTopic(TopicConstant.LINK_BROADCAST,topic)){ + try { + DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<DeviceInfoResponse>() { + }.getType()); - //TODO 閫氳繃澧炲姞if else 澧炲姞鍏跺畠涓婚绫讳技杩欐牱浣跨敤 + if(deviceInfoResponse==null||deviceInfoResponse.getObjects()==null){ + return; + } + if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) { + byte[] baseBytes = Base64.decode(deviceInfoResponse.getObjects().getLocalSecret(), Base64.NO_WRAP); + String mackey = ""; + if (!TextUtils.isEmpty(SPUtils.getString("auth_mackey_key", ""))) { + mackey = SPUtils.getString("auth_mackey_key", ""); + byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16)); + String localSecret = new String(bodyBytes, "utf-8"); + Log.d("panlili", "鏇存柊瀵嗛挜----->localSecret= " + localSecret); + HDLLinkConfig.getInstance().setLocalSecret(localSecret); + } + } + } catch (Exception e) { + LogUtils.i("LinkMessageDecoder.java:getLocalSecret----->e= " + e.getMessage()); + } + } + else if(isSameTopic(TopicConstant.DELETE_NOTIFY,topic)){ + try { + DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<DeviceDeleteResponse>() { + }.getType()); + HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() { + @Override + public void onSuccess(String msg) { + LogUtils.i("deleteNetwork onSucceed"); + if (HDLLink.getInstance().listener != null) { + HDLLink.getInstance().listener.onSuccess(msg); + } + } + + @Override + public void onError(HDLLinkException e) { + LogUtils.i("deleteNetwork onError"); + if (HDLLink.getInstance().listener != null) { + HDLLink.getInstance().listener.onFailure(); + } + } + }); + } catch (Exception e) { + LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage()); + } + } } catch (Exception e) { LogUtils.e("鍏ㄥ眬澶勭悊妯″潡寮傚父锛�" + e.getMessage()); @@ -64,10 +124,11 @@ return false; } String mac = HDLLinkConfig.getInstance().getDeviceInfoBean().getDeviceMAC(); - String oid = "123";//HDLLinkConfig.getInstance().getDeviceInfoBean().getOID(); + String oid = HDLLinkConfig.getInstance().getDeviceInfoBean().getOID(); String gatewayId = HDLLinkConfig.getInstance().getGatewayId(); + String all="all"; - return mac_Oid_GatewayId.equals(mac) || mac_Oid_GatewayId.equals(oid) || mac_Oid_GatewayId.equals(gatewayId); + return mac_Oid_GatewayId.equals(mac) || mac_Oid_GatewayId.equals(oid) || mac_Oid_GatewayId.equals(gatewayId)||mac_Oid_GatewayId.toLowerCase().equals(all); } /** 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 71438aa..4c15135 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 @@ -196,71 +196,7 @@ String bodyString = new String(body, "utf-8"); response.setData(bodyString); LogUtils.i("鎺ユ敹鍒版暟鎹�:" + response.getTopic() + "\r\n" + response.getData()); - - String updateLocalSecret = String.format(TopicConstant.LINK_BROADCAST, HDLLinkConfig.getInstance().getGatewayId()); - String deleteNetwork = ""; - if (HDLLinkConfig.getInstance().getDeviceInfoBean() != null) { - deleteNetwork = String.format(TopicConstant.DELETE_NOTIFY, HDLLinkConfig.getInstance().getDeviceInfoBean().getOID()); - } - - if (response.getTopic().equals("/user/all/custom/gateway/search")) { - HDLAuthSocket.getInstance().UploadGatewayInfo(new HDLLinkCallBack() { - @Override - public void onSuccess(String msg) { - LogUtils.i("UploadGatewayInfo onSucceed"); - } - - @Override - public void onError(HDLLinkException e) { - LogUtils.i("UploadGatewayInfo onError"); - } - }); - } - else if (response.getTopic().equals(updateLocalSecret) || response.getTopic().equals(TopicConstant.LINK_BROADCAST)) { - try { - DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceInfoResponse>() { - }.getType()); - - if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) { - byte[] baseBytes = Base64.decode(deviceInfoResponse.getObjects().getLocalSecret(), Base64.NO_WRAP); - String mackey = ""; - if (!TextUtils.isEmpty(SPUtils.getString("auth_mackey_key", ""))) { - mackey = SPUtils.getString("auth_mackey_key", ""); - byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16)); - String localSecret = new String(bodyBytes, "utf-8"); - Log.d("panlili", "鏇存柊瀵嗛挜----->localSecret= " + localSecret); - HDLLinkConfig.getInstance().setLocalSecret(localSecret); - } - } - } catch (Exception e) { - LogUtils.i("LinkMessageDecoder.java:getLocalSecret----->e= " + e.getMessage()); - } - } else if (response.getTopic().equals(deleteNetwork)) { - try { - DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceDeleteResponse>() { - }.getType()); - HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() { - @Override - public void onSuccess(String msg) { - LogUtils.i("deleteNetwork onSucceed"); - if (HDLLink.getInstance().listener != null) { - HDLLink.getInstance().listener.onSuccess(msg); - } - } - - @Override - public void onError(HDLLinkException e) { - LogUtils.i("deleteNetwork onError"); - if (HDLLink.getInstance().listener != null) { - HDLLink.getInstance().listener.onFailure(); - } - } - }); - } catch (Exception e) { - LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage()); - } - } - + //闈炴甯告暟鎹紝杩斿洖 if (!((bodyString.startsWith("{") && bodyString.endsWith("}")) || (bodyString.startsWith("[") && bodyString.endsWith("]")))) { 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 bd4045c..6a3b624 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 @@ -224,21 +224,7 @@ GsonConvert.getGson().toJson(data)); String ip = IpUtils.getBroadcastAddress(); - HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, new HdlSocketHelper.HdlSocketListener() { - @Override - public void onSucceed(Object msg) { - if (callBack == null) return; - callBack.onSuccess("涓婃姤鎴愬姛"); - LogUtils.i("UploadGatewayInfo onSucceed = " + msg); - } - - @Override - public void onFailure() { - if (callBack == null) return; - callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UPLOAD_GATEWAYINFO_FAILURE_ERROR)); - LogUtils.i("UploadGatewayInfo onFailure"); - } - }); + HdlSocketHelper.sendUdp(getUdpBoot(), ip, UDP_PORT, message, null); } diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java index abac95d..58fd289 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java @@ -91,7 +91,7 @@ * 娉ㄥ唽鐩戝惉 */ void registerListener() { - if (!TextUtils.isEmpty(observeTopic)) { + if (listener != null && !TextUtils.isEmpty(observeTopic)) { EventDispatcher.getInstance().register(observeTopic, eventListener); // LogUtils.i("HdlSocketHelper", "register event"); } -- Gitblit v1.8.0