panlili2024
2025-03-05 134209ad70f82051da3ce63471df0cc8f778e57d
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
@@ -19,34 +19,46 @@
    private static final String AUTHENTICATE_GATEWAYID_KEY = "auth_gatewayid_key";
    private static final String AUTHENTICATE_IPADDRESS_KEY = "auth_ipaddress_key";
    private static final String AUTHENTICATE_IS_LS_KEY = "auth_isls_key";
    public static final String AUTHENTICATE_IS_DEVICEINFO_KEY = "auth_deviceinfo_key";
    public static final String GATEWAY_REMOTEINFO_KEY = "gateway_remoteinfo_key";
    private static final String GATEWAY_PARENTOID_KEY = "gateway_parentoiid_key";
    private String localSecret;//本地加密密钥
    private String gatewayId;
    private String ipAddress;
    private boolean isLocalEncrypt;//网关是否需要加密通讯
    private GatewaySearchBean currentGateway;//当前网关
    private String networkName;
    private String homeId;
    private String parentOid;
    private AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean;//当前设备基本信息
    private AuthenticateRequest.RequestBean requestBean;//当前设备基本信息
    private AuthenticateRequest.AuthBean authBean;//当前设备认证信息
    /**
     * instance
     */
    private volatile static HDLLinkConfig instance;
    private static final HDLLinkConfig instance = new HDLLinkConfig();
    private HDLLinkConfig() {
        loadConfig();
    }
    /**
     * getInstance
     *
     * @return AuthenticateConfig
     */
    public static synchronized HDLLinkConfig getInstance() {
        if (instance == null) {
            synchronized (HDLLinkConfig.class) {
                if (instance == null) {
                    instance = new HDLLinkConfig();
                    instance.loadConfig();
                }
            }
        }
    public static HDLLinkConfig getInstance() {
//        if (instance == null) {
//            synchronized (HDLLinkConfig.class) {
//                if (instance == null) {
//                    instance = new HDLLinkConfig();
//                    instance.loadConfig();
//                }
//            }
//        }
        return instance;
    }
@@ -57,11 +69,13 @@
        this.gatewayId = "";
        this.ipAddress = "";
        this.localSecret = "";
        this.isLocalEncrypt = false;
        this.homeId = "";
        SPUtils.remove(AUTHENTICATE_LS_KEY);
        SPUtils.remove(AUTHENTICATE_GATEWAYID_KEY);
        SPUtils.remove(AUTHENTICATE_IPADDRESS_KEY);
        SPUtils.remove(AUTHENTICATE_IS_LS_KEY);
        SPUtils.remove(GATEWAY_REMOTEINFO_KEY);
        SPUtils.remove(GATEWAY_PARENTOID_KEY);
    }
    /**
@@ -71,7 +85,8 @@
        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);
        homeId = SPUtils.getString(GATEWAY_REMOTEINFO_KEY, "");
        parentOid = SPUtils.getString(GATEWAY_PARENTOID_KEY, "");
    }
    /**
@@ -88,6 +103,7 @@
        SPUtils.put(AUTHENTICATE_LS_KEY, localSecret);
        SPUtils.put(AUTHENTICATE_GATEWAYID_KEY, gatewayId);
        SPUtils.put(AUTHENTICATE_IPADDRESS_KEY, ipAddress);
    }
    /**
@@ -104,9 +120,10 @@
     */
    public boolean checkIfCertified() {
        //localSecret不为空并且长度等于16 网关id不能为空
        return !TextUtils.isEmpty(localSecret)
                && localSecret.length() == 16
                && !TextUtils.isEmpty(gatewayId);
        return !TextUtils.isEmpty(gatewayId);
//        return !TextUtils.isEmpty(localSecret)
//                && localSecret.length() == 16
//                && !TextUtils.isEmpty(gatewayId);
    }
    public void setLocalSecret(String localSecret) {
@@ -115,31 +132,40 @@
    }
    public String getLocalSecret() {
        LogUtils.i("HDLLinkConfig","密钥是:"+localSecret);
        return localSecret;
    }
    public String getGatewayId() {
        return gatewayId;
    }
    public void setGatewayId(String gatewayId) {
        this.gatewayId=gatewayId;
        this.gatewayId = gatewayId;
    }
    public String getIpAddress() {
        return ipAddress;
    }
    public void setIpAddress(String ipAddress){
    public void setIpAddress(String ipAddress) {
        this.ipAddress = ipAddress;
    }
    public boolean isLocalEncrypt() {
        return isLocalEncrypt;
    public String getParentOid() {
        return parentOid;
    }
    public void setLocalEncrypt(boolean localEncrypt) {
        isLocalEncrypt = localEncrypt;
        SPUtils.put(AUTHENTICATE_IS_LS_KEY, isLocalEncrypt);
    public void setParentOid(String parentOid) {
        this.parentOid = parentOid;
        SPUtils.put(GATEWAY_PARENTOID_KEY, parentOid);
    }
    public String getNetworkName() {
        return networkName;
    }
    public void setNetworkName(String networkName) {
        this.networkName = networkName;
    }
    public GatewaySearchBean getCurrentGateway() {
@@ -168,8 +194,8 @@
        return (!topicStr.contains(TopicConstant.GATEWAY_AUTH_BROADCAST) //网关广播入网指令
                && !topicStr.contains(TopicConstant.DEIVCE_AUTH_REQUEST) //入网认证
                && !topicStr.contains(TopicConstant.GATEWAY_SEARCH) //搜索网关主题
                && !topicStr.equals(TopicConstant.BROADCAST)
                && isLocalEncrypt//启用加密标志
                && !topicStr.contains(TopicConstant.BROADCAST)
                && !TextUtils.isEmpty(localSecret) //有密钥就是加密
        );
    }
@@ -184,10 +210,40 @@
    }
    public AuthenticateRequest.AuthenticateDeviceInfoBean getDeviceInfoBean() {
        return deviceInfoBean;
        AuthenticateRequest.AuthenticateDeviceInfoBean infoBean = (AuthenticateRequest.AuthenticateDeviceInfoBean) SPUtils.getSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY);
        if (infoBean == null) {
            infoBean = new AuthenticateRequest.AuthenticateDeviceInfoBean();
        }
        return infoBean;
    }
    public void setDeviceInfoBean(AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean) {
        this.deviceInfoBean = deviceInfoBean;
        SPUtils.saveSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY, deviceInfoBean);
    }
    public AuthenticateRequest.RequestBean getRequestBean() {
        return requestBean;
    }
    public void setRequestBean(AuthenticateRequest.RequestBean requestBean) {
        this.requestBean = requestBean;
    }
    public AuthenticateRequest.AuthBean getAuthBean() {
        return authBean;
    }
    public void setAuthBean(AuthenticateRequest.AuthBean authBean) {
        this.authBean = authBean;
    }
    public String getHomeId() {
        return homeId;
    }
    public void setHomeId(String homeId) {
        this.homeId = homeId;
        SPUtils.put(GATEWAY_REMOTEINFO_KEY, homeId);
    }
}