From fdcf461fbfa3bcd650685743e891ad3357898f0c Mon Sep 17 00:00:00 2001 From: 562935844@qq.com Date: 星期四, 31 八月 2023 17:36:50 +0800 Subject: [PATCH] 更新sdk --- HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java | 222 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 182 insertions(+), 40 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 e5e993b..9ee990e 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 @@ -1,10 +1,22 @@ package com.hdl.sdk.connect; +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; import com.hdl.sdk.connect.bean.request.DeviceControlRequest; +import com.hdl.sdk.connect.bean.request.ListUploadRequest; import com.hdl.sdk.connect.callback.HDLLinkCallBack; import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack; +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.config.HDLLinkConfig; import com.hdl.sdk.common.event.EventDispatcher; import com.hdl.sdk.common.event.EventListener; @@ -15,6 +27,9 @@ import java.util.List; import java.util.concurrent.TimeUnit; +import io.reactivex.rxjava3.disposables.Disposable; +import okhttp3.logging.HttpLoggingInterceptor; + /** * Created by jlchen on 11/15/21. * @@ -24,13 +39,17 @@ /** * instance */ - private static final HDLLink instance=new HDLLink(); + private static final HDLLink instance = new HDLLink(); + + private String appKey, appSecret; + public DeleteNetworkListener listener; + /** * getInstance * * @return HDLLink */ - public static HDLLink getInstance() { + public static HDLLink getInstance() { // if (instance == null) { // synchronized (HDLLink.class) { // if (instance == null) { @@ -41,30 +60,63 @@ return instance; } + public String getAppKey() { + return appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey; + } + + public String getAppSecret() { + return appSecret; + } + + public void setAppSecret(String appSecret) { + this.appSecret = appSecret; + } + /** * 娉ㄥ唽鎵�鏈変富棰樻秷鎭殑鐩戝惉 + * * @param listener */ - public synchronized void registerAllTopicsListener(EventListener listener){ + public synchronized void registerAllTopicsListener(EventListener listener) { EventDispatcher.getInstance().registerAllTopicsListener(listener); } + /** * 鍙栨秷鎵�鏈変富棰樻秷鎭殑鐩戝惉 + * * @param listener */ public synchronized void removeAllTopicsListener(EventListener listener) { - if(listener == null) return; + if (listener == null) return; EventDispatcher.getInstance().removeAllTopicsListener(listener); + } + + /** + * 娉ㄥ唽閫�缃戜富棰樼殑鐩戝惉 + * + * @param listener + */ + public synchronized void setDeleteNetworkListener(DeleteNetworkListener listener) { + this.listener = listener; } /***********************涓夋柟璁惧鍜岀綉鍏抽�氫俊涔嬪墠鐨勮璇佹祦绋�****************************/ /** * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃 * 璁よ瘉閫氳繃鎵嶈兘杩涜璁惧鎺у埗 + * * @return */ - public boolean checkIfCertified(){ + public boolean checkIfCertified() { return HDLLinkConfig.getInstance().checkIfCertified(); + } + + public void selectNetwork(String networkName) { + HDLLinkConfig.getInstance().setNetworkName(networkName); } /** @@ -75,7 +127,7 @@ */ public void startAuthenticateRequest(AuthenticateRequest request, HDLLinkCallBack callBack) { LogUtils.i("鍙戦�佽璇佽姹�"); - HDLAuthSocket.getInstance().startAuthenticateRequest(request,callBack); + HDLAuthSocket.getInstance().startAuthenticateRequest(request, callBack); } /** @@ -89,26 +141,90 @@ HDLAuthSocket.getInstance().sendAuthenticateRequest(ip, request, callBack); } - // /** -// * 寮�濮嬫悳绱㈡墍鏈夌綉鍏筹紝鏈夌綉鍏冲洖澶嶅氨鍥炶皟锛屼笂灞傝嚜宸卞仛鍘婚噸鍒ゆ柇 -// * -// * @param callBack 鍥炶皟 -// */ -// public void startSearchAllGateway(HDLAuthSocket.SearchGatewayCallBack callBack) { -// -// } -// -// /** -// * 鏆傚仠鎼滅储缃戝叧 -// */ -// public void endSearchAllGateway() { -// -// } + /** + * 鍏ョ綉璁よ瘉缁撴灉鍙嶉 + * + * @param mac mac + * @param result 缁撴灉0/-1 + * @param message 璁よ瘉淇℃伅 + * @param auth_code 浜戠璁よ瘉code + * @param callBack 缁撴灉鍥炶皟 + */ + public void UploadDeviceAuth(String mac, String result, String message, String auth_code, HDLLinkCallBack callBack) { + HDLSocket.getInstance().UploadDeviceAuth(mac, result, message, auth_code, callBack); + } + + /** + * 鐢宠璁惧瀵嗛挜(鏍规嵁璁惧MAC) + * + * @param supplier 鍘傚晢 + * @param mac 璁惧mac + * @param spk 璁惧spk + * @param callBack 缁撴灉鍥炶皟 + */ + public void applyDeviceSecret(Context context, String appKey, String appSecret, 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) { + 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.checkAppVersion(versionCode, appCode, listener); + } + + /** + * 閫氱煡鍒犻櫎骞堕��缃戝瓙璁惧 + * + * @param oid 浠庣綉鍏筹紙璁惧锛塷id + * @param isForce 鏄惁寮哄埗閫�缃� + * @param callBack 缁撴灉鍥炶皟 + */ + public void deleteNetwork(String oid, boolean isForce, HDLLinkCallBack callBack) { + HDLSocket.getInstance().deleteNetwork(oid, isForce, callBack); + } /***********************涓夋柟璁惧璇峰厛璁よ瘉鎴愬姛 鍐嶈皟鐢ㄤ笅闈㈢殑鎺ュ彛鍜岀綉鍏抽�氫俊****************************/ /** * 缁勬挱鎼滅储鎸囧畾缃戝叧鏄惁鍦ㄧ嚎锛屾悳绱㈠埌鍒欒繑鍥炴寚瀹氱殑缃戝叧瀵硅薄 - * @param callBack 鍥炶皟 + * + * @param callBack 鍥炶皟 */ public void searchGatewayMulticast(HDLAuthSocket.SearchGatewayCallBack callBack) { HDLAuthSocket.getInstance().searchGatewayMulticast(callBack); @@ -116,7 +232,8 @@ /** * 缁勬挱鎼滅储鎸囧畾缃戝叧鏄惁鍦ㄧ嚎锛屾悳绱㈠埌鍒欒繑鍥炴寚瀹氱殑缃戝叧瀵硅薄 - * @param callBack 鍥炶皟 + * + * @param callBack 鍥炶皟 */ public void searchGatewayBroadcast(HDLAuthSocket.SearchGatewayCallBack callBack) { HDLAuthSocket.getInstance().searchGatewayBroadcast(callBack); @@ -148,7 +265,8 @@ /** * 璁惧鎺у埗 - * @param request 鎺у埗鐘舵�佸弬鏁� + * + * @param request 鎺у埗鐘舵�佸弬鏁� * @param callBack 缁撴灉鍥炶皟 */ public void propertyDown(List<DeviceControlRequest> request, HDLLinkCallBack callBack) { @@ -157,7 +275,8 @@ /** * 璇诲彇鐘舵�� - * @param sids 璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃 + * + * @param sids 璇锋眰鍙傛暟 鎸囧畾璇诲彇鐨勮澶噑id鍒楄〃 * @param callBack 鍥炶皟 */ public void propertyRead(List<String> sids, HDLLinkCallBack callBack) { @@ -172,8 +291,19 @@ } /** + * 鍦烘櫙璇︽儏 + * + * @param sids 鍦烘櫙sid鍒楄〃 + * @param callBack 鍥炶皟 + */ + public void getScene(List<String> sids, HDLLinkCallBack callBack) { + HDLSocket.getInstance().getScene(sids, callBack); + } + + /** * 鍦烘櫙鎺у埗 - * @param sids 鍦烘櫙sid鍒楄〃 + * + * @param sids 鍦烘櫙sid鍒楄〃 * @param callBack 鍥炶皟 */ public void controlScene(List<String> sids, HDLLinkCallBack callBack) { @@ -181,25 +311,37 @@ } /** + * 涓婃姤oid鍒楄〃 + * + * @param request 璁惧淇℃伅 + * @param callBack 鍥炶皟 + */ + public void UploadOidList(ListUploadRequest request, HDLLinkCallBack callBack) { + HDLSocket.getInstance().UploadOidList(request, callBack); + } + + /** * 閫氱敤UDP鍙戦�佹寚浠� * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆� - * @param topic 鍙戦�佹暟鎹� - * @param bodyStr body鍐呭 + * + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr body鍐呭 * @param callBack 鍥炶皟 */ public void udpSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) { - HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false, callBack); + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, false, callBack); } /** * 閫氱敤骞挎挱UDP鍙戦�佹寚浠� * 1绉掓病鍝嶅簲灏辫浠栭噸鏂板彂閫�,閲嶈瘯3娆� - * @param topic 鍙戦�佹暟鎹� - * @param bodyStr body鍐呭 + * + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr body鍐呭 * @param callBack 鍥炶皟 */ public void udpBroadcastSendMsg(String topic, String bodyStr, HDLLinkResponseCallBack callBack) { - HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true, callBack); + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, true, callBack); } /** @@ -218,28 +360,28 @@ /** * 閫氱敤鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙� * - * @param topic 鍙戦�佹暟鎹� - * @param bodyStr 鍥炲鐨勪富棰� + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr 鍥炲鐨勪富棰� */ public void udpSendMsg(String topic, String bodyStr) { - HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,false); + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, false); } /** * 閫氱敤骞挎挱鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙� * - * @param topic 鍙戦�佹暟鎹� - * @param bodyStr 鍥炲鐨勪富棰� + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr 鍥炲鐨勪富棰� */ public void udpBroadcastSendMsg(String topic, String bodyStr) { - HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr,true); + HDLAuthSocket.getInstance().udpSendMsg(topic, bodyStr, true); } /** * 閫氱敤TCP鍙戦�佹寚浠� 鍙彂涓�娆★紝涓嶇洃鍚洖澶嶏紝涓嶉噸鍙� * - * @param topic 鍙戦�佹暟鎹� - * @param bodyStr 鍥炲鐨勪富棰� + * @param topic 鍙戦�佹暟鎹� + * @param bodyStr 鍥炲鐨勪富棰� */ public void tcpSendMsg(String topic, String bodyStr) { HDLAuthSocket.getInstance();//閫氳繃杩欎釜鍙互鍏堝垵濮嬪寲UDP鐩戝惉浜嬩欢 -- Gitblit v1.8.0