562935844@qq.com
2023-10-18 755e2893c12b79649ee12dec2b7d832d58b9265b
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -1,32 +1,20 @@
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.event.EventDispatcher;
import com.hdl.sdk.common.event.EventListener;
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.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.callback.HDLLinkCallBack;
import com.hdl.sdk.connect.callback.HDLLinkResponseCallBack;
import com.hdl.sdk.connect.cloud.CallBackListener;
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;
import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
import com.hdl.sdk.connect.socket.HDLAuthSocket;
import com.hdl.sdk.connect.socket.HDLSocket;
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.
@@ -40,6 +28,7 @@
    private static final HDLLink instance = new HDLLink();
    private String appKey, appSecret;
    public DeleteNetworkListener listener;
    /**
     * getInstance
@@ -92,6 +81,15 @@
        EventDispatcher.getInstance().removeAllTopicsListener(listener);
    }
    /**
     * 注册退网主题的监听
     *
     * @param listener
     */
    public synchronized void setDeleteNetworkListener(DeleteNetworkListener listener) {
        this.listener = listener;
    }
    /***********************三方设备和网关通信之前的认证流程****************************/
    /**
     * 检测是否已经认证过
@@ -105,6 +103,10 @@
    public void selectNetwork(String networkName) {
        HDLLinkConfig.getInstance().setNetworkName(networkName);
    }
    public void setParentOid(String parentOid) {
        HDLLinkConfig.getInstance().setParentOid(parentOid);
    }
    /**
@@ -150,7 +152,7 @@
     * @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(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(
@@ -168,6 +170,34 @@
        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);
    }*/
    /**
     * 通知删除并退网子设备
@@ -251,6 +281,16 @@
    }
    /**
     * 场景详情
     *
     * @param sids     场景sid列表
     * @param callBack 回调
     */
    public void getScene(List<String> sids, HDLLinkCallBack callBack) {
        HDLSocket.getInstance().getScene(sids, callBack);
    }
    /**
     * 场景控制
     *
     * @param sids     场景sid列表
@@ -271,6 +311,16 @@
    }
    /**
     * 上报sid列表
     *
     * @param requestList  sid列表
     * @param callBack 回调
     */
    public void UploadSidList(List<ListSidRequest> requestList, HDLLinkCallBack callBack) {
        HDLSocket.getInstance().UploadSidList(requestList, callBack);
    }
    /**
     * 通用UDP发送指令
     * 1秒没响应就让他重新发送,重试3次
     *