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