From 4a42989853dd83c0519d0684383430006b7e9625 Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期二, 26 八月 2025 17:59:50 +0800
Subject: [PATCH] 获取设备列表序列化

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java |  162 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 131 insertions(+), 31 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
index 0e30ae9..78b7d0f 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -2,23 +2,30 @@
 
 import android.content.Context;
 
+import com.google.gson.reflect.TypeToken;
 import com.hdl.hdlhttp.HxHttpConfig;
 import com.hdl.sdk.common.event.DeleteNetworkListener;
 import com.hdl.sdk.common.event.EventDispatcher;
 import com.hdl.sdk.common.event.EventListener;
+import com.hdl.sdk.common.exception.HDLLinkException;
 import com.hdl.sdk.common.utils.LogUtils;
+import com.hdl.sdk.common.utils.gson.GsonConvert;
+import com.hdl.sdk.connect.bean.LinkFunctionInfo;
+import com.hdl.sdk.connect.bean.LinkResponse;
 import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
 import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
 import com.hdl.sdk.connect.bean.request.ListSidRequest;
 import com.hdl.sdk.connect.bean.request.ListUploadRequest;
+import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
 import com.hdl.sdk.connect.callback.HDLLinkCallBack;
 import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
+import com.hdl.sdk.connect.callback.HDLLinkTCallBack;
 import com.hdl.sdk.connect.cloud.CallBackListener;
 import com.hdl.sdk.connect.cloud.CheckAppVersionListener;
-import com.hdl.sdk.connect.cloud.HdlCloudApi;
 import com.hdl.sdk.connect.cloud.HdlCloudController;
-import com.hdl.sdk.connect.cloud.interceptor.EncryptInterceptor;
-import com.hdl.sdk.connect.cloud.interceptor.SmartHeaderInterceptor;
+import com.hdl.sdk.connect.cloud.listener.GatewayListener;
+import com.hdl.sdk.connect.cloud.listener.SibichiListener;
+import com.hdl.sdk.connect.config.HDLCloudConfig;
 import com.hdl.sdk.connect.config.HDLLinkConfig;
 import com.hdl.sdk.connect.socket.HDLAuthSocket;
 import com.hdl.sdk.connect.socket.HDLSocket;
@@ -164,51 +171,59 @@
      * @param spk      璁惧spk
      * @param callBack 缁撴灉鍥炶皟
      */
-    public void applyDeviceSecret(Context context, String appKey, String appSecret, String supplier, String mac, String spk, CallBackListener callBack) {
+    public void applyDeviceSecret(String supplier, String mac, String spk, CallBackListener callBack) {
         LogUtils.i("鐢宠璁惧瀵嗛挜");
-        HxHttpConfig.getInstance().init(context, HdlCloudApi.BASE_CHINA_URL)
-                .addInterceptor(
-                        new EncryptInterceptor(),
-                        new SmartHeaderInterceptor());
-        this.appKey = appKey;
-        this.appSecret = appSecret;
-
-        HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
-        httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
-
-        HxHttpConfig.getInstance()
-                //.addInterceptor(new HttpCacheInterceptor())
-                .addInterceptor(httpLoggingInterceptor).ignoreSSL();
-
         HdlCloudController.applyDeviceSecret(supplier, mac, spk, callBack);
     }
 
     /**
      * 妫�娴嬫洿鏂�
      *
-     * @param appKey      appKey
-     * @param appSecret   appSecret
      * @param versionCode 褰撳墠鐗堟湰
      * @param appCode     appCode
      * @param listener    缁撴灉鍥炶皟
      */
-    public void checkAppVersion(Context context, String appKey, String appSecret, String versionCode, String appCode, CheckAppVersionListener listener) {
+    public void checkAppVersion(String versionCode, String appCode, CheckAppVersionListener listener) {
         LogUtils.i("妫�娴嬫洿鏂�");
-        HxHttpConfig.getInstance().init(context, HdlCloudApi.BASE_CHINA_URL)
-                .addInterceptor(
-                        new EncryptInterceptor(),
-                        new SmartHeaderInterceptor());
-        this.appKey = appKey;
-        this.appSecret = appSecret;
+        HdlCloudController.checkAppVersion(versionCode, appCode, listener);
+    }
+
+    /**
+     * 鍒濆鍖栦簯绔�
+     */
+    public void initCloud(Context context, String appKey, String appSecret, String url) {
+
+        HDLCloudConfig.getInstance().init(context, appKey, appSecret, url);
+
+        HxHttpConfig.getInstance().ignoreSSL();
 
         HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
         httpLoggingInterceptor.level(HttpLoggingInterceptor.Level.BODY);
+        HxHttpConfig.getInstance().addInterceptor(httpLoggingInterceptor);
 
-        HxHttpConfig.getInstance()
-                //.addInterceptor(new HttpCacheInterceptor())
-                .addInterceptor(httpLoggingInterceptor).ignoreSSL();
+    }
 
-        HdlCloudController.checkAppVersion(versionCode, appCode, listener);
+    /**
+     * 鑾峰彇鎬濆繀椹皌oken
+     *
+     * @param homeId   homeId
+     * @param clientId clientId
+     * @param listener 缁撴灉鍥炶皟
+     */
+    public void getSibichiToken(String homeId, String clientId, SibichiListener listener) {
+        LogUtils.i("鑾峰彇鎬濆繀椹皌oken");
+        HdlCloudController.getSibichiToken(homeId, clientId, listener);
+    }
+
+    /**
+     * 鑾峰彇涓荤綉鍏充俊鎭�
+     *
+     * @param homeId   homeId
+     * @param listener 缁撴灉鍥炶皟
+     */
+    public void syncMainGateway(String homeId, GatewayListener listener) {
+        LogUtils.i("鑾峰彇涓荤綉鍏充俊鎭�");
+        HdlCloudController.syncMainGateway(homeId, listener);
     }
 
     /**
@@ -256,6 +271,33 @@
     }
 
     /**
+     * 鑾峰彇璁惧鍒楄〃
+     */
+    public void getFunctionInfoList(HDLLinkTCallBack<List<LinkFunctionInfo>> callBack) {
+        getFunctionList(new HDLLinkCallBack() {
+            @Override
+            public void onSuccess(String msg) {
+                LinkResponse linkResponse = GsonConvert.getGson().fromJson(msg, new TypeToken<LinkResponse>() {
+                }.getType());
+
+                final BaseLocalResponse<List<LinkFunctionInfo>> listBaseLocalResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<List<LinkFunctionInfo>>>() {
+                }.getType());
+                if (callBack != null) {
+                    callBack.onSuccess(listBaseLocalResponse.getObjects());
+                }
+
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                if (callBack != null) {
+                    callBack.onError(e);
+                }
+            }
+        });
+    }
+
+    /**
      * 鑾峰彇璁惧鍔熻兘灞炴��
      *
      * @param sids
@@ -266,6 +308,35 @@
     }
 
     /**
+     * 鑾峰彇璁惧鍔熻兘灞炴��
+     *
+     * @param sids
+     * @param callBack
+     */
+    public void getFunctionAttributeInfo(List<String> sids, HDLLinkTCallBack<List<LinkFunctionInfo>> callBack) {
+        getFunctionAttribute(sids, new HDLLinkCallBack() {
+            @Override
+            public void onSuccess(String msg) {
+                LinkResponse linkResponse = GsonConvert.getGson().fromJson(msg, new TypeToken<LinkResponse>() {
+                }.getType());
+
+                final BaseLocalResponse<List<LinkFunctionInfo>> listBaseLocalResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<List<LinkFunctionInfo>>>() {
+                }.getType());
+                if (callBack != null) {
+                    callBack.onSuccess(listBaseLocalResponse.getObjects());
+                }
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                if (callBack != null) {
+                    callBack.onError(e);
+                }
+            }
+        });
+    }
+
+    /**
      * 璁惧鎺у埗
      *
      * @param request  鎺у埗鐘舵�佸弬鏁�
@@ -276,6 +347,35 @@
     }
 
     /**
+     * 璁惧鎺у埗
+     *
+     * @param request  鎺у埗鐘舵�佸弬鏁�
+     * @param callBack 缁撴灉鍥炶皟
+     */
+    public void propertyDownDevice(List<DeviceControlRequest> request, HDLLinkTCallBack<String> callBack) {
+        propertyDown(request, new HDLLinkCallBack() {
+            @Override
+            public void onSuccess(String msg) {
+                LinkResponse linkResponse = GsonConvert.getGson().fromJson(msg, new TypeToken<LinkResponse>() {
+                }.getType());
+
+                final BaseLocalResponse<String> listBaseLocalResponse = GsonConvert.getGson().fromJson(linkResponse.getData(), new TypeToken<BaseLocalResponse<String>>() {
+                }.getType());
+                if (callBack != null) {
+                    callBack.onSuccess(listBaseLocalResponse.getObjects());
+                }
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                if (callBack != null) {
+                    callBack.onError(e);
+                }
+            }
+        });
+    }
+
+    /**
      * 璇诲彇鐘舵��
      *
      * @param sids     璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃

--
Gitblit v1.8.0