562935844@qq.com
2023-09-19 6521c8e329665cc97f0714a9a094d2d823e23980
修复退网清除缓存异常
4个文件已修改
77 ■■■■■ 已修改文件
HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -384,19 +384,21 @@
    void initDeviceInfo()
    {
        AuthenticateRequest.AuthenticateDeviceInfoBean infoBean = new AuthenticateRequest.AuthenticateDeviceInfoBean();
        infoBean.setDeviceMAC("AA00000000000100");
        infoBean.setIPMAC("AA00000000000100");
        infoBean.setDeviceName("音乐播放器");//设备名字
        infoBean.setDeviceModel("MCLog.431");//设备型号
        infoBean.setDeviceMAC("f2c5d8bad48f");
        infoBean.setIPMAC("f2c5d8bad48f");
        infoBean.setDeviceName("魔镜");//设备名字
        infoBean.setDeviceModel("HDLSDK");//设备型号
        infoBean.setAccessMode("WIFI");
        infoBean.setIPGateway("192.168.1.1");
        infoBean.setIPAddress("192.168.1.116");
        infoBean.setGateway_type("music.standard");
        infoBean.setGateway_type("screen.touch");
        infoBean.setHw_version("HW2.0");
        infoBean.setFw_version("Fw1.0");
        infoBean.setOID("010105000000FE11");//每个设备oid都要不一样
        infoBean.setSid("110105000000FE08110100000011");//每个设备的sid都要不一样
        infoBean.setSupplier("JINMAOYUN");
        HDLLinkConfig.getInstance().setDeviceInfoBean(infoBean);
    }
    /**
@@ -413,8 +415,8 @@
//        正式服务器
        String spkStr = "screen.mirror";//产品spk
        String macStr = "AA00000000000100";//设备唯一MAC地址
        String secret = "e186beeb7974998e";//通过spk和mac提交云端认证后分配的secret
        String macStr = "f2c5d8bad48f";//设备唯一MAC地址
//        String secret = "e186beeb7974998e";//通过spk和mac提交云端认证后分配的secret
        String mac_key = stringToMD5(stringToMD5(macStr + secret));
        String versionString = "HDL_V1.0.1";//
@@ -424,7 +426,7 @@
        //1.设置认证信息
        AuthenticateRequest.RequestBean requestBean = new AuthenticateRequest.RequestBean();
        requestBean.setMAC(macStr);
        requestBean.setSupplier("WISE");
        requestBean.setSupplier("JINMAOYUN");
        requestBean.setFirmwareVersion(versionString);
        requestBean.setHardwareModel("1956F");
        AuthenticateRequest.AuthBean authbean = new AuthenticateRequest.AuthBean();
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/AllTopicManagerUtils.java
@@ -22,7 +22,7 @@
/**
 * Created by hxb on 2023/9/14.
 */
public  class AllTopicManagerUtils {
public class AllTopicManagerUtils {
    /**
     * 全局主题处理方法,可以处理所有接收到的数据
@@ -138,6 +138,7 @@
    /**
     * 更新密钥
     *
     * @param body
     */
    private static void managerLinkBroadcast(String body) {
@@ -166,18 +167,28 @@
    /**
     * 退网
     *
     * @param body
     */
    private static void managerDeleteNofity(String body)
    {
    private static void managerDeleteNofity(String body) {
        try {
            DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(body, new TypeToken<DeviceDeleteResponse>() {
            }.getType());
            if(deviceDeleteResponse==null||deviceDeleteResponse.getObjects()==null){
            if (deviceDeleteResponse == null || deviceDeleteResponse.getObjects() == null) {
                return;
            }
            HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), null);
            HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() {
                @Override
                public void onSuccess(String msg) {
                }
                @Override
                public void onError(HDLLinkException e) {
                }
            });
        } catch (Exception e) {
            LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage());
        }
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -155,7 +155,7 @@
                        LogUtils.i("网关入网广播IP: " + bean.getIPAddress());
                        if (!TextUtils.isEmpty(bean.getSlave_mac())) {
                            if (!bean.getSlave_mac().equals(request.getObjects().getDeviceMAC())) {
                                LogUtils.i("入网验证的mac和本机不一样,请求的MAC是"+bean.getSlave_mac()+" 本机的是"+request.getObjects().getDeviceMAC());
                                LogUtils.i("入网验证的mac和本机不一样,请求的MAC是" + bean.getSlave_mac() + " 本机的是" + request.getObjects().getDeviceMAC());
                                return;
                            }
                        }
@@ -168,8 +168,8 @@
                        }
                    }
                }catch (Exception e){
                    LogUtils.e("入网验证异常",e.getMessage());
                } catch (Exception e) {
                    LogUtils.e("入网验证异常", e.getMessage());
                }
            }
        });
@@ -196,6 +196,7 @@
        final GatewayInfoRequest request = new GatewayInfoRequest();
        AuthenticateRequest.AuthenticateDeviceInfoBean authenticateDeviceInfoBean = HDLLinkConfig.getInstance().getDeviceInfoBean();
        if (authenticateDeviceInfoBean == null) return;
        request.setDevice_model(authenticateDeviceInfoBean.getDeviceModel());
        request.setDevice_mac(authenticateDeviceInfoBean.getDeviceMAC());
        request.setDevice_name(authenticateDeviceInfoBean.getDeviceName());
@@ -207,7 +208,9 @@
        if (authenticateDeviceInfoBean.getSupplier() == null) {
            AuthenticateRequest.RequestBean requestBean = HDLLinkConfig.getInstance().getRequestBean();
            request.setSupplier(requestBean.getSupplier());
            if (requestBean != null) {
                request.setSupplier(requestBean.getSupplier());
            }
        }
        request.setHw_version(authenticateDeviceInfoBean.getHw_version());
@@ -255,19 +258,19 @@
                            String localSecret = "";
                            String gatewayId = "";
                            String ipAddress = "";
                            String homeId="";
                            String homeId = "";
                            if (bean.getAuth() != null) {
                                localSecret = bean.getAuth().getLocalSecret();
                            }
                            if (bean.getObjects() != null) {
                                gatewayId = bean.getObjects().getGatewayID();
                                ipAddress = bean.getObjects().getIPAddress();
                                homeId=bean.getObjects().getHomeId();
                                homeId = bean.getObjects().getHomeId();
                            }
                            if (ipAddress == null) {
                                ipAddress = bean.getIp_address();
                            }
                            if(!TextUtils.isEmpty(homeId)){
                            if (!TextUtils.isEmpty(homeId)) {
                                HDLLinkConfig.getInstance().setHomeId(homeId);
                            }
                            HDLLinkConfig.getInstance().setAuthBean(request.getAuth());
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -701,8 +701,8 @@
    /**
     * 上报Sid列表
     *
     * @param requestList  sid列表
     * @param callBack 回调
     * @param requestList sid列表
     * @param callBack    回调
     */
    public void UploadSidList(List<ListSidRequest> requestList, HDLLinkCallBack callBack) {
        if (!TextUtils.isEmpty(getGatewayId()) && !TextUtils.isEmpty(getTcpIp())) {
@@ -949,14 +949,13 @@
//        String replyTopic = topic + "_reply";
        try {
            sendMsg(message.getSendBytes(), topic, callBack, new SendListener() {
            sendMsg(message.getSendBytes(), topic, null, new SendListener() {
                @Override
                public void onSucceed() {
                    HDLLinkConfig.getInstance().clearConfig();
                    if (callBack == null) return;
                    try {
                        callBack.onSuccess("退网成功");
                        HDLLinkConfig.getInstance().clearConfig();
                    } catch (Exception e) {
                        callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_DATA_ERROR));
                    }
@@ -995,7 +994,11 @@
    public void tcpSendMsg(String topic, String bodyStr, HDLLinkCallBack callBack) {
        try {
            LinkRequest message = new LinkRequest(topic, bodyStr);
            if (topic != null && topic.endsWith("_reply")) {
                callBack = null;
            }
            String replyTopic = topic + "_reply";
            HDLLinkCallBack finalCallBack = callBack;
            sendMsg(message.getSendBytes(), replyTopic, callBack, new SendListener() {
                @Override
                public void onSucceed() {
@@ -1004,8 +1007,8 @@
                @Override
                public void onError() {
                    if (callBack != null) {
                        callBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
                    if (finalCallBack != null) {
                        finalCallBack.onError(HDLLinkException.getErrorWithCode(HDLLinkCode.HDL_SEND_ERROR));
                    }
                }
            });
@@ -1116,8 +1119,9 @@
    /**
     * 回复网关配置命令
     *
     * @param mac_Oid_GatewayId
     * @param msgId 消息Id
     * @param msgId             消息Id
     * @param callBack
     */
    public void gatewayRemoteEditReply(String mac_Oid_GatewayId, String msgId, HDLLinkCallBack callBack) {
@@ -1135,7 +1139,6 @@
        String topic = String.format(TopicConstant.GATEWAY_EDIT_REMOTE_REPLY, mac_Oid_GatewayId);
        LinkRequest message = new LinkRequest(topic,
                GsonConvert.getGson().toJson(data));
        try {