From a03799e08e7cc9b984b89cd125fd01e31f78486d Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期四, 02 十二月 2021 09:44:20 +0800 Subject: [PATCH] 2021-12-02 1.增加网关认证错误 --- HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java | 1 + HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java | 2 +- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java | 22 +++++++++++++++++----- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java | 11 ++++++++--- HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java | 7 ++++--- 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java index f7e8f3c..2935d87 100644 --- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java +++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java @@ -21,7 +21,7 @@ //鍒濆鍖朣DK HDLSdk.getInstance().init(this); //鎺у埗SDK鏃ュ織鎵撳嵃 - HDLSdk.getInstance().setLogEnabled(false); + HDLSdk.getInstance().setLogEnabled(true); } 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 da3237b..33838bc 100644 --- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java +++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java @@ -69,6 +69,7 @@ rv.setLayoutManager(new LinearLayoutManager(this)); checkIfCertified(); + registerAllTopicsListener(); ActivityResultLauncher<String[]> launcher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() { @@ -281,7 +282,7 @@ void getFunctionList(){ tv.setText("鑾峰彇鍔熻兘鍒楄〃涓�..."); responseTv.setText(""); - HDLSocket.getInstance().getFunctionList(new HDLLinkCallBack() { + HDLLink.getInstance().getFunctionList(new HDLLinkCallBack() { @Override public void onError(HDLLinkException error) { tv.setText(error.getMsg()); @@ -303,7 +304,7 @@ tv.setText("鍔熻兘灞炴�ц鍙�"); List<String> sids = new ArrayList<>(); sids.add(testLightSid); - HDLSocket.getInstance().getFunctionAttribute(sids, new HDLLinkCallBack() { + HDLLink.getInstance().getFunctionAttribute(sids, new HDLLinkCallBack() { @Override public void onSuccess(String msg) { responseTv.setText(msg); @@ -324,7 +325,7 @@ tv.setText("璇诲彇鐘舵�佷腑..."); List<String> list = new ArrayList<>(); list.add(testLightSid);//瑕佽鍙栬澶囩殑sid - HDLSocket.getInstance().propertyRead(list, new HDLLinkCallBack() { + HDLLink.getInstance().propertyRead(list, new HDLLinkCallBack() { @Override public void onSuccess(String data) { tv.setText("璇诲彇鎴愬姛"); diff --git a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java index 908f391..7847526 100644 --- a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java +++ b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/exception/HDLLinkCode.java @@ -13,6 +13,7 @@ HDL_SEND_ERROR(-2003,"鍙戦�佸け璐�"), HDL_TIMEOUT_ERROR(-2004,"瓒呮椂"), HDL_UNAUTHORIZED_ERROR(-2005,"鏈璇侊紝璇峰厛璁よ瘉"), + HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED(-2006,"璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔�"), HDL_GET_DEVICE_LIST_ERROR(-2100,"鑾峰彇璁惧鍒楄〃澶辫触"), HDL_GET_FUNCTION_LIST_ERROR(-2101,"鑾峰彇鍔熻兘鍒楄〃澶辫触"), HDL_GET_FUNCTION_PROPERTIES_ERROR(-2102,"鑾峰彇鍔熻兘灞炴�уけ璐�"), diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java index a212728..5fb4298 100644 --- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java +++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java @@ -28,6 +28,7 @@ * instance */ private volatile static HDLLinkConfig instance; + /** * getInstance * @@ -62,15 +63,16 @@ /** * 鍔犺浇缂撳瓨 */ - void loadConfig(){ + void loadConfig() { localSecret = SPUtils.getString(AUTHENTICATE_LS_KEY, ""); gatewayId = SPUtils.getString(AUTHENTICATE_GATEWAYID_KEY, ""); ipAddress = SPUtils.getString(AUTHENTICATE_IPADDRESS_KEY, ""); - isLocalEncrypt = SPUtils.getBoolean(AUTHENTICATE_IS_LS_KEY,false); + isLocalEncrypt = SPUtils.getBoolean(AUTHENTICATE_IS_LS_KEY, false); } /** * 淇濆瓨閰嶇疆 + * * @param localSecret * @param gatewayId * @param ipAddress @@ -86,9 +88,10 @@ /** * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃 + * * @return */ - public boolean checkIfCertified(){ + public boolean checkIfCertified() { //localSecret涓嶄负绌哄苟涓旈暱搴︾瓑浜�16 缃戝叧id涓嶈兘涓虹┖ return !TextUtils.isEmpty(localSecret) && localSecret.length() == 16 @@ -127,14 +130,22 @@ public void setCurrentGateway(GatewaySearchBean currentGateway) { this.currentGateway = currentGateway; + if (this.currentGateway != null && !TextUtils.isEmpty(this.currentGateway.getIp_address())) { + if (!this.ipAddress.equals(this.currentGateway.getIp_address())) { + //濡傛灉IP鍦板潃鏈夊彉鍖栧垯鏇存柊 + this.ipAddress = this.currentGateway.getIp_address(); + SPUtils.put(AUTHENTICATE_IPADDRESS_KEY, ipAddress); + } + } } /** * 鍒ゆ柇褰撳墠涓婚鏁版嵁鏄惁闇�瑕佸姞瀵� + * * @param topicStr 褰撳墠涓婚 * @return */ - public boolean ifNeedEncrypt(String topicStr){ + public boolean ifNeedEncrypt(String topicStr) { //杩囨护鐩稿叧闇�瑕佸姞瀵嗙殑涓婚 return (!topicStr.contains(TopicConstant.GATEWAY_AUTH_BROADCAST) //缃戝叧骞挎挱鍏ョ綉鎸囦护 && !topicStr.contains(TopicConstant.DEIVCE_AUTH_REQUEST) //鍏ョ綉璁よ瘉 @@ -145,10 +156,11 @@ /** * 鎷兼帴缃戝叧ID鑾峰彇瀹屾暣鐨勪富棰� + * * @param topicStr * @return */ - public String getFullTopic(String topicStr){ + public String getFullTopic(String topicStr) { return String.format(topicStr, gatewayId); } 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 b6e525a..0fb853c 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 @@ -164,12 +164,17 @@ String localSecret = bean.getAuth().getLocalSecret(); String gatewayId = bean.getObjects().getGatewayID(); String ipAddress = bean.getObjects().getIPAddress(); - HDLLinkConfig.getInstance().saveConfig(localSecret,gatewayId,ipAddress); - callBack.onSuccess("璁よ瘉鎴愬姛"); + //鍒ゆ柇缃戝叧鏄惁宸茬粡娉ㄥ唽鍒颁簯绔� + if(TextUtils.isEmpty(localSecret) ||TextUtils.isEmpty(gatewayId)){ + //璁よ瘉澶辫触锛岀綉鍏虫湭娉ㄥ唽鍒颁簯绔� + callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_AUTH_ERROR_GATEWAY_NOT_REGISTERED)); + }else{ + HDLLinkConfig.getInstance().saveConfig(localSecret,gatewayId,ipAddress); + callBack.onSuccess("璁よ瘉鎴愬姛"); + } }else{ callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR)); } - } @Override -- Gitblit v1.8.0