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/common/utils/AllTopicManagerUtils.java | 67 ++++++++++++++++++++++++++++++++- 1 files changed, 64 insertions(+), 3 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); } /** -- Gitblit v1.8.0