| | |
| | | * instance |
| | | */ |
| | | private volatile static HDLLinkConfig instance; |
| | | |
| | | /** |
| | | * getInstance |
| | | * |
| | |
| | | /** |
| | | * 加载缓存 |
| | | */ |
| | | 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 |
| | |
| | | |
| | | /** |
| | | * 检测是否已经认证过 |
| | | * |
| | | * @return |
| | | */ |
| | | public boolean checkIfCertified(){ |
| | | public boolean checkIfCertified() { |
| | | //localSecret不为空并且长度等于16 网关id不能为空 |
| | | return !TextUtils.isEmpty(localSecret) |
| | | && localSecret.length() == 16 |
| | |
| | | |
| | | 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) //入网认证 |
| | |
| | | |
| | | /** |
| | | * 拼接网关ID获取完整的主题 |
| | | * |
| | | * @param topicStr |
| | | * @return |
| | | */ |
| | | public String getFullTopic(String topicStr){ |
| | | public String getFullTopic(String topicStr) { |
| | | return String.format(topicStr, gatewayId); |
| | | } |
| | | |