From b77dc026ffd21dba8652d28409c51e27d3e5a76c Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期四, 31 八月 2023 09:21:06 +0800
Subject: [PATCH] 更新sdk

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java         |   17 ++
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java                    |   54 ++++++++++
 HDLSDK_DEMO/app/src/main/java/com/hdl/hdlsdk/MainActivity.java                                |   26 +++++
 HDLSDK/app/src/main/res/layout/activity_main.xml                                              |    8 +
 HDLSDK/hdl-connect/build.gradle                                                               |    4 
 HDLSDK_DEMO/app/src/main/res/layout/activity_main.xml                                         |    8 +
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/DeleteNetworkListener.java          |   11 ++
 HDLSDK_DEMO.rar                                                                               |    0 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java                             |   21 ++++
 HDLSDK/com.hdl.sdk/build.gradle                                                               |    4 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java                |    2 
 HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.3.aar                                                   |    0 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/BaseLocalCodeResponse.java |   47 +++++++++
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceInfoResponse.java    |    6 
 HDLSDK_DEMO/app/build.gradle                                                                  |    2 
 HDLSDK_DEMO/.idea/misc.xml                                                                    |    2 
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java                                     |   48 +++++++++
 17 files changed, 242 insertions(+), 18 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 00f4264..73cae8c 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -25,9 +25,11 @@
 import com.google.gson.reflect.TypeToken;
 import com.hdl.hdlsdk.device.DevicesListActivity;
 import com.hdl.sdk.common.config.TopicConstant;
+import com.hdl.sdk.common.event.DeleteNetworkListener;
 import com.hdl.sdk.common.event.EventListener;
 import com.hdl.sdk.common.exception.HDLLinkException;
 import com.hdl.sdk.common.utils.IdUtils;
+import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.gson.GsonConvert;
 import com.hdl.sdk.connect.HDLLink;
 import com.hdl.sdk.connect.bean.LinkResponse;
@@ -59,10 +61,11 @@
     private RecyclerView rv;
     private TextView tv;
     private TextView responseTv;
+    private TextView localSecret;
     private EditText editText;
     boolean isOn;
     private EventListener allTopicsListener;
-    private String testLightSid = "0001010D48C71B02020100010101";
+    private String testLightSid = "02010131D9C03D01020300010107";
     private String secret = "";
 
     @Override
@@ -185,6 +188,7 @@
             public void onSuccess(String msg) {
                 tv.setText("璁よ瘉鎴愬姛");
                 responseTv.setText(msg.toString());
+                localSecret.setText("瀵嗛挜锛�" + HDLLinkConfig.getInstance().getLocalSecret());
             }
         });
     }
@@ -214,6 +218,7 @@
         setContentView(R.layout.activity_main);
         responseTv = findViewById(R.id.response_tv);
         editText = findViewById(R.id.edittext);
+        localSecret = findViewById(R.id.local_secret);
         tv = findViewById(R.id.state_tv);
         rv = findViewById(R.id.rv);
         rv.setLayoutManager(new LinearLayoutManager(this));
@@ -222,6 +227,17 @@
         checkIfCertified();
         initDeviceInfo();//鍒濆鍖�
         registerAllTopicsListener();
+        HDLLink.getInstance().setDeleteNetworkListener(new DeleteNetworkListener() {
+            @Override
+            public void onSuccess(Object msg) {
+                LogUtils.i("setDeleteNetworkListener onSucceed = " + msg);
+            }
+
+            @Override
+            public void onFailure() {
+                LogUtils.i("setDeleteNetworkListener onFailure");
+            }
+        });
 
         ActivityResultLauncher<String[]> launcher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
             @Override
@@ -301,7 +317,7 @@
                         break;
                     case 9:
                         //鍦烘櫙鎺у埗
-                        controlScene();
+                        getScene();
                         break;
                     case 10:
                         //鍔熻兘鍒楄〃
@@ -359,6 +375,9 @@
             @Override
             public void onMessage(Object msg) {
                 LinkResponse response = (LinkResponse) msg;
+                if ("/user/all/custom/gateway/broadcast_reply".equals(response.getTopic())) {
+                    localSecret.setText("瀵嗛挜锛�" + HDLLinkConfig.getInstance().getLocalSecret());
+                }
             }
         };
         HDLLink.getInstance().registerAllTopicsListener(allTopicsListener);
@@ -560,6 +579,7 @@
             @Override
             public void onSuccess(String msg) {
                 responseTv.setText(msg);
+                Log.d("panlili", "MainActivity.java:getSceneList-----> " + msg);
             }
 
             @Override
@@ -573,6 +593,30 @@
     // {"id":"8a5eaa143ce943b987b577df5a66759b","time_stamp":"1637040217235","objects":[{"sid":"04010560D2C7170A0A0100000000","name":"鍥炲妯″紡","status":"off","group":"255","delay":"0","modify_time":"1634871490"},{"sid":"04010560D2C76E0A0A0100010000","name":"绂诲妯″紡","status":"off","group":"255","delay":"0","modify_time":"1634785823"}]}
 
     /**
+     * 鑾峰彇鍦烘櫙璇︽儏
+     * 鎵ц鎴愬姛鐨勮瘽 鍝嶅簲code涓�200
+     */
+    void getScene() {
+        tv.setText("鍦烘櫙璇诲彇");
+        responseTv.setText("");
+        //鍦烘櫙sid鍒楄〃锛屾敮鎸佹壒閲忚鍙�
+        List<String> sids = new ArrayList<>();
+        sids.add("0201034C50B53F0A0A0100011100");
+        sids.add("0201037F50B53F0A0A0100021100");
+        HDLLink.getInstance().getScene(sids, new HDLLinkCallBack() {
+            @Override
+            public void onSuccess(String msg) {
+                responseTv.setText(msg);
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                responseTv.setText(e.getMsg());
+            }
+        });
+    }
+
+    /**
      * 鎺у埗鍦烘櫙
      * 鎵ц鎴愬姛鐨勮瘽 鍝嶅簲code涓�200
      */
diff --git a/HDLSDK/app/src/main/res/layout/activity_main.xml b/HDLSDK/app/src/main/res/layout/activity_main.xml
index 2fe14f5..6bdd2a2 100644
--- a/HDLSDK/app/src/main/res/layout/activity_main.xml
+++ b/HDLSDK/app/src/main/res/layout/activity_main.xml
@@ -76,6 +76,14 @@
                 android:text="鍝嶅簲锛�" />
 
             <TextView
+                android:id="@+id/local_secret"
+                android:paddingStart="10dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:text="瀵嗛挜锛�" />
+
+            <TextView
                 android:id="@+id/response_tv"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
diff --git a/HDLSDK/com.hdl.sdk/build.gradle b/HDLSDK/com.hdl.sdk/build.gradle
index eeb1372..545c0b7 100644
--- a/HDLSDK/com.hdl.sdk/build.gradle
+++ b/HDLSDK/com.hdl.sdk/build.gradle
@@ -8,8 +8,8 @@
     defaultConfig {
         minSdkVersion rootProject.minSdkVersion
         targetSdkVersion rootProject.targetSdkVersion
-        versionCode 2
-        versionName "1.1.0"
+        versionCode 5
+        versionName "1.1.3"
     }
     buildTypes {
         debug {
diff --git a/HDLSDK/hdl-connect/build.gradle b/HDLSDK/hdl-connect/build.gradle
index b37b85d..5f8c118 100644
--- a/HDLSDK/hdl-connect/build.gradle
+++ b/HDLSDK/hdl-connect/build.gradle
@@ -8,8 +8,8 @@
     defaultConfig {
         minSdkVersion rootProject.minSdkVersion
         targetSdkVersion rootProject.targetSdkVersion
-        versionCode 2
-        versionName "1.1.0"
+        versionCode 5
+        versionName "1.1.3"
 
         consumerProguardFiles "consumer-rules.pro"
     }
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/DeleteNetworkListener.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/DeleteNetworkListener.java
new file mode 100644
index 0000000..0fa9a8a
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/DeleteNetworkListener.java
@@ -0,0 +1,11 @@
+package com.hdl.sdk.common.event;
+
+/**
+ * Created by Tong on 2021/9/22.
+ */
+public interface DeleteNetworkListener {
+
+    void onSuccess(Object msg);
+    void onFailure();
+
+}
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 e84727d..d1aa555 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
@@ -3,6 +3,7 @@
 import android.content.Context;
 
 import com.hdl.hdlhttp.HxHttpConfig;
+import com.hdl.sdk.common.event.DeleteNetworkListener;
 import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.ThreadToolUtils;
 import com.hdl.sdk.connect.bean.request.DeviceAuthRequest;
@@ -40,6 +41,7 @@
     private static final HDLLink instance = new HDLLink();
 
     private String appKey, appSecret;
+    public DeleteNetworkListener listener;
 
     /**
      * getInstance
@@ -90,6 +92,15 @@
     public synchronized void removeAllTopicsListener(EventListener listener) {
         if (listener == null) return;
         EventDispatcher.getInstance().removeAllTopicsListener(listener);
+    }
+
+    /**
+     * 娉ㄥ唽閫�缃戜富棰樼殑鐩戝惉
+     *
+     * @param listener
+     */
+    public synchronized void setDeleteNetworkListener(DeleteNetworkListener listener) {
+        this.listener = listener;
     }
 
     /***********************涓夋柟璁惧鍜岀綉鍏抽�氫俊涔嬪墠鐨勮璇佹祦绋�****************************/
@@ -251,6 +262,16 @@
     }
 
     /**
+     * 鍦烘櫙璇︽儏
+     *
+     * @param sids     鍦烘櫙sid鍒楄〃
+     * @param callBack 鍥炶皟
+     */
+    public void getScene(List<String> sids, HDLLinkCallBack callBack) {
+        HDLSocket.getInstance().getScene(sids, callBack);
+    }
+
+    /**
      * 鍦烘櫙鎺у埗
      *
      * @param sids     鍦烘櫙sid鍒楄〃
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/BaseLocalCodeResponse.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/BaseLocalCodeResponse.java
new file mode 100644
index 0000000..94ecf31
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/BaseLocalCodeResponse.java
@@ -0,0 +1,47 @@
+package com.hdl.sdk.connect.bean.response;
+
+import java.io.Serializable;
+
+/**
+ * Created by Tong on 2021/9/29.
+ */
+public class BaseLocalCodeResponse<T> implements Serializable {
+
+
+    private String id;
+    private String time_stamp;
+    private String code;
+    private T objects;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTime_stamp() {
+        return time_stamp;
+    }
+
+    public void setTime_stamp(String time_stamp) {
+        this.time_stamp = time_stamp;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public T getObjects() {
+        return objects;
+    }
+
+    public void setObjects(T objects) {
+        this.objects = objects;
+    }
+}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceInfoResponse.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceInfoResponse.java
index b9ffbc6..a819363 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceInfoResponse.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/DeviceInfoResponse.java
@@ -24,7 +24,7 @@
         private String oid;
         private String homeId;
         private String mac;
-        private String LocalSecret;
+        private String local_secret;
 
         public String getIPAddress() {
             return ip_address;
@@ -67,11 +67,11 @@
         }
 
         public String getLocalSecret() {
-            return LocalSecret;
+            return local_secret;
         }
 
         public void setLocalSecret(String localSecret) {
-            LocalSecret = localSecret;
+            local_secret = localSecret;
         }
     }
 
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 a227a2a..4e2cbb0 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
@@ -15,6 +15,7 @@
 import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.SPUtils;
 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.AuthenticateRequest;
 import com.hdl.sdk.connect.bean.response.DeviceDeleteResponse;
@@ -27,8 +28,9 @@
 import com.hdl.sdk.socket.codec.ByteToMessageDecoder;
 
 import java.util.ArrayList;
-import java.util.Base64;
 import java.util.List;
+
+import android.util.Base64;
 
 import kotlin.ParameterName;
 
@@ -181,7 +183,7 @@
                             //涔嬪墠鐨勭増鏈繖鍧楁槸鏄庢枃鐨�
                             if (!topic.contains("heartbeat_reply")) {
                                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
-                                    LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.getEncoder().encodeToString(body));
+                                    LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.encodeToString(body, Base64.NO_WRAP));
                                 else {
                                     LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + new String(body, "utf-8"));
                                 }
@@ -213,18 +215,19 @@
                             LogUtils.i("UploadGatewayInfo onError");
                         }
                     });
-                } else if (response.getTopic().equals(updateLocalSecret)) {
+                } 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.getDecoder().decode(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);
                             }
                         }
@@ -239,11 +242,17 @@
                             @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) {
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 5395316..595c20b 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
@@ -271,7 +271,7 @@
                             HDLLinkConfig.getInstance().setAuthBean(request.getAuth());
 
                             //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔�
-                            Log.d("panlili", "HDLAuthSocket.java:onSucceed-----> " + localSecret);
+                            Log.d("panlili", "璁よ瘉鎴愬姛----->localSecret= " + localSecret);
                             if (TextUtils.isEmpty(localSecret) && TextUtils.isEmpty(gatewayId)) {
                                 //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�
                                 callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED));
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
index 82b4652..c2a71fb 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -29,6 +29,7 @@
 import com.hdl.sdk.connect.bean.request.ListOidRequest2;
 import com.hdl.sdk.connect.bean.request.ListUploadRequest;
 import com.hdl.sdk.connect.bean.response.AuthenticateResponse;
+import com.hdl.sdk.connect.bean.response.BaseLocalCodeResponse;
 import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
 import com.hdl.sdk.connect.bean.request.DeviceControlRequest;
 import com.hdl.sdk.connect.bean.request.FunctionAttributeRequest;
@@ -93,6 +94,7 @@
     }
 
     public boolean isBroadcast = false;
+
 
     /**
      * 骞挎挱鑷韩淇℃伅缁欎富缃戝叧
@@ -544,6 +546,53 @@
     }
 
     /**
+     * 鑾峰彇鍦烘櫙鍒楄〃
+     */
+    public void getScene(List<String> sids, HDLLinkCallBack callBack) {
+        if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
+            String time = String.valueOf(System.currentTimeMillis());
+            final BaseLocalResponse<List<PropertyReadRequest>> data = new BaseLocalResponse<>();
+            data.setId(IdUtils.getUUId());
+            data.setTime_stamp(time);
+
+            List<PropertyReadRequest> list = new ArrayList<>();
+            for (String s : sids) {
+                list.add(new PropertyReadRequest(s));
+            }
+            data.setObjects(list);
+
+            String topic = String.format(TopicConstant.SCENE_GET, getGatewayId());
+            LinkRequest message = new LinkRequest(topic,
+                    GsonConvert.getGson().toJson(data));
+
+            String replyTopic = topic + "_reply";
+            try {
+                sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
+                    @Override
+                    public void onSucceed() {
+
+                    }
+
+                    @Override
+                    public void onError() {
+                        if (callBack != null) {
+                            callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+                        }
+                    }
+                });
+            } catch (Exception e) {
+                if (callBack != null) {
+                    callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_GET_FUNCTION_LIST_ERROR));
+                }
+            }
+        } else {
+            if (callBack != null) {
+                callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_UNAUTHORIZED_ERROR));
+            }
+        }
+    }
+
+    /**
      * 鍦烘櫙鎺у埗
      *
      * @param sids     鍦烘櫙sid鍒楄〃
@@ -828,9 +877,10 @@
 
         final String msgId = IdUtils.getUUId();
         String time = String.valueOf(System.currentTimeMillis());
-        final BaseLocalResponse<List<ListOidRequest>> data = new BaseLocalResponse<>();
+        final BaseLocalCodeResponse<List<ListOidRequest>> data = new BaseLocalCodeResponse<>();
         data.setId(msgId);
         data.setTime_stamp(time);
+        data.setCode("0");
 
         final ListOidRequest request = new ListOidRequest();
         request.setOid(oid);
@@ -961,7 +1011,7 @@
                 threadPool.scheduleWithFixedDelay(new Runnable() {
                     @Override
                     public void run() {
-                        if (sendCount.get() < 0) {
+                        if (sendCount.get() < 3) {
                             sendCount.set(sendCount.get() + 1);
                             getTcp().sendMsg(data);
                         } else {
diff --git a/HDLSDK_DEMO.rar b/HDLSDK_DEMO.rar
index cf56fbe..c293162 100644
--- a/HDLSDK_DEMO.rar
+++ b/HDLSDK_DEMO.rar
Binary files differ
diff --git a/HDLSDK_DEMO/.idea/misc.xml b/HDLSDK_DEMO/.idea/misc.xml
index 56d5c89..8bcb976 100644
--- a/HDLSDK_DEMO/.idea/misc.xml
+++ b/HDLSDK_DEMO/.idea/misc.xml
@@ -3,7 +3,9 @@
   <component name="DesignSurface">
     <option name="filePathToZoomLevelMap">
       <map>
+        <entry key="..\:/HDL/ProjectCode/HDLSDK/HDLSDK_A_Android/HDLSDK_DEMO/app/src/main/res/layout/activity_devices_list.xml" value="0.3536458333333333" />
         <entry key="..\:/HDL/ProjectCode/HDLSDK/HDLSDK_A_Android/HDLSDK_DEMO/app/src/main/res/layout/activity_main.xml" value="0.3538301198540907" />
+        <entry key="..\:/HDL/ProjectCode/HDLSDK/HDLSDK_A_Android/HDLSDK_DEMO/app/src/main/res/layout/item_devices_list.xml" value="0.3536458333333333" />
         <entry key="..\:/job/me/Android/HDLSDK/app/src/main/res/layout/activity_main.xml" value="0.1" />
         <entry key="..\:/job/me/Android/HDLSDK/app/src/main/res/layout/demo_item.xml" value="0.28958333333333336" />
       </map>
diff --git a/HDLSDK_DEMO/app/build.gradle b/HDLSDK_DEMO/app/build.gradle
index 8896afb..8d58906 100644
--- a/HDLSDK_DEMO/app/build.gradle
+++ b/HDLSDK_DEMO/app/build.gradle
@@ -40,5 +40,5 @@
     implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.6'
 //    implementation 'com.google.code.gson:gson:2.8.8'
 //    implementation project(path: ':hdl-connect')
-    implementation files('libs\\com.hdl.sdk-v1.1.0.aar')
+    implementation files('libs\\com.hdl.sdk-v1.1.3.aar')
 }
\ No newline at end of file
diff --git a/HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.0.aar b/HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.3.aar
similarity index 94%
rename from HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.0.aar
rename to HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.3.aar
index a704e40..457d626 100644
--- a/HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.0.aar
+++ b/HDLSDK_DEMO/app/libs/com.hdl.sdk-v1.1.3.aar
Binary files differ
diff --git a/HDLSDK_DEMO/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK_DEMO/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index 5054c03..8a9300d 100644
--- a/HDLSDK_DEMO/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK_DEMO/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -2,6 +2,7 @@
 
 import android.Manifest;
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
@@ -14,6 +15,7 @@
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
@@ -23,9 +25,11 @@
 import com.google.gson.reflect.TypeToken;
 import com.hdl.hdlsdk.device.DevicesListActivity;
 import com.hdl.sdk.common.config.TopicConstant;
+import com.hdl.sdk.common.event.DeleteNetworkListener;
 import com.hdl.sdk.common.event.EventListener;
 import com.hdl.sdk.common.exception.HDLLinkException;
 import com.hdl.sdk.common.utils.IdUtils;
+import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.gson.GsonConvert;
 import com.hdl.sdk.connect.HDLLink;
 import com.hdl.sdk.connect.bean.LinkResponse;
@@ -55,10 +59,11 @@
     private RecyclerView rv;
     private TextView tv;
     private TextView responseTv;
+    private TextView localSecret;
     private EditText editText;
     boolean isOn;
     private EventListener allTopicsListener;
-    private String testLightSid = "0001010D48C71B02020100010101";
+    private String testLightSid = "02010131D9C03D01020300010107";
     private String secret = "";
 
     @Override
@@ -164,6 +169,8 @@
         authbean.setSpk(spkStr);
         authbean.setMACKey(mac_key);
         authbean.setRequest(requestBean);
+        HDLLinkConfig.getInstance().setAuthBean(authbean);
+
         //HDLLinkConfig.getInstance().getDeviceInfoBean()杩欎釜鍒濆鍖栫殑鏃跺�欒鍏堣缃ソ
         AuthenticateRequest request = new AuthenticateRequest(IdUtils.getUUId(), time, HDLLinkConfig.getInstance().getDeviceInfoBean(), authbean);
         HDLLink.getInstance().startAuthenticateRequest(request, new HDLLinkCallBack() {
@@ -174,10 +181,12 @@
                 Log.e(TAG, "onError: 璁よ瘉澶辫触 " + e.getCode());
             }
 
+            @RequiresApi(api = Build.VERSION_CODES.O)
             @Override
             public void onSuccess(String msg) {
                 tv.setText("璁よ瘉鎴愬姛");
                 responseTv.setText(msg.toString());
+                localSecret.setText("瀵嗛挜锛�" + HDLLinkConfig.getInstance().getLocalSecret());
             }
         });
     }
@@ -207,6 +216,7 @@
         setContentView(R.layout.activity_main);
         responseTv = findViewById(R.id.response_tv);
         editText = findViewById(R.id.edittext);
+        localSecret = findViewById(R.id.local_secret);
         tv = findViewById(R.id.state_tv);
         rv = findViewById(R.id.rv);
         rv.setLayoutManager(new LinearLayoutManager(this));
@@ -215,6 +225,17 @@
         checkIfCertified();
         initDeviceInfo();//鍒濆鍖�
         registerAllTopicsListener();
+        HDLLink.getInstance().setDeleteNetworkListener(new DeleteNetworkListener() {
+            @Override
+            public void onSuccess(Object msg) {
+                LogUtils.i("setDeleteNetworkListener onSucceed = " + msg);
+            }
+
+            @Override
+            public void onFailure() {
+                LogUtils.i("setDeleteNetworkListener onFailure");
+            }
+        });
 
         ActivityResultLauncher<String[]> launcher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() {
             @Override
@@ -352,6 +373,9 @@
             @Override
             public void onMessage(Object msg) {
                 LinkResponse response = (LinkResponse) msg;
+                if ("/user/all/custom/gateway/broadcast_reply".equals(response.getTopic())){
+                    localSecret.setText("瀵嗛挜锛�" + HDLLinkConfig.getInstance().getLocalSecret());
+                }
             }
         };
         HDLLink.getInstance().registerAllTopicsListener(allTopicsListener);
diff --git a/HDLSDK_DEMO/app/src/main/res/layout/activity_main.xml b/HDLSDK_DEMO/app/src/main/res/layout/activity_main.xml
index 2fe14f5..6bdd2a2 100644
--- a/HDLSDK_DEMO/app/src/main/res/layout/activity_main.xml
+++ b/HDLSDK_DEMO/app/src/main/res/layout/activity_main.xml
@@ -76,6 +76,14 @@
                 android:text="鍝嶅簲锛�" />
 
             <TextView
+                android:id="@+id/local_secret"
+                android:paddingStart="10dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:text="瀵嗛挜锛�" />
+
+            <TextView
                 android:id="@+id/response_tv"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"

--
Gitblit v1.8.0