562935844@qq.com
2023-08-31 0ce9960bb073c10f8c12989291c94b98e6caf799
deviceinfo加判空
2个文件已添加
11个文件已修改
291 ■■■■■ 已修改文件
HDLSDK/.idea/gradle.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/com.hdl.sdk/build.gradle 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/UpdateInfo.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/CheckAppVersionListener.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/settings.gradle 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLSDK/.idea/gradle.xml
@@ -11,6 +11,7 @@
        <option name="modules">
          <set>
            <option value="$PROJECT_DIR$" />
            <option value="$PROJECT_DIR$/app" />
            <option value="$PROJECT_DIR$/com.hdl.sdk" />
            <option value="$PROJECT_DIR$/hdl-connect" />
          </set>
HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -1,7 +1,10 @@
package com.hdl.hdlsdk;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
@@ -38,9 +41,11 @@
import com.hdl.sdk.connect.bean.request.ListUploadRequest;
import com.hdl.sdk.connect.bean.response.BaseLocalResponse;
import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
import com.hdl.sdk.connect.bean.response.UpdateInfo;
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.HDLException;
import com.hdl.sdk.connect.config.HDLLinkConfig;
import com.hdl.sdk.connect.socket.HDLAuthSocket;
@@ -129,6 +134,32 @@
                tv.setText("申请成功");
                responseTv.setText(msg.toString());
                secret = msg.toString();
            }
        });
    }
    void checkAppVersion() {
        tv.setText("开始检测更新...");
        responseTv.setText("");
//        //正式服务器
        String appKey = "i8hR07jzrIS";//appkey
        String appSecret = "BmnJ8RWTtaVEBk24zPPF4UMwfYu0lAWU";//appsecret
        String appCode = "1697150870315999233";//appCode
        HDLLink.getInstance().checkAppVersion(this, appKey, appSecret, getAppVersionName(this), appCode, new CheckAppVersionListener() {
            @Override
            public void onSuccess(UpdateInfo info) {
                tv.setText("有新更新");
                responseTv.setText(info.toString());
            }
            @Override
            public void onError(HDLException e) {
                tv.setText("检测更新失败");
                responseTv.setText(e.getMsg());
            }
        });
@@ -265,6 +296,7 @@
        beans.add(new DemoBean("UDP发送,监听主题回复,带重发带回调"));
        beans.add(new DemoBean("TCP发送,监听主题回复,带重发带回调"));
        beans.add(new DemoBean("退网"));
        beans.add(new DemoBean("检测更新"));
        demoAdapter = new DemoAdapter(beans);
        rv.setAdapter(demoAdapter);
@@ -342,6 +374,10 @@
                    case 15:
                        //退网
                        deleteNetwork();
                        break;
                    case 16:
                        //检测更新
                        checkAppVersion();
                        break;
                }
            }
@@ -787,4 +823,26 @@
            }
        });
    }
    /**
     * 获取APP版本
     *
     * @param context
     * @return
     */
    public static String getAppVersionName(Context context) {
        String versionName = "0";
        try {
            PackageManager packageManager = context.getPackageManager();
            PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
            versionName = packageInfo.versionName;
            if (TextUtils.isEmpty(versionName)) {
                versionName = "0";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return versionName;
    }
}
HDLSDK/com.hdl.sdk/build.gradle
@@ -8,8 +8,8 @@
    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        versionCode 5
        versionName "1.1.3"
        versionCode 6
        versionName "1.1.4"
    }
    buildTypes {
        debug {
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
@@ -147,7 +147,7 @@
                                        listener.onMessage(o);
                                    }
                                } catch (Exception e) {
//                                    LogUtils.e("post异常1:" + e.getMessage());
                                    LogUtils.e("post异常1:" + e.getMessage());
                                }
                            }
                        });
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/SPUtils.java
@@ -2,11 +2,17 @@
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Base64;
import com.hdl.sdk.common.HDLSdk;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
@@ -146,5 +152,52 @@
                .apply();
    }
    private static String Object2String(Object object) {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ObjectOutputStream objectOutputStream = null;
        try {
            objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
            objectOutputStream.writeObject(object);
            String string = new String(Base64.encode(byteArrayOutputStream.toByteArray(), Base64.DEFAULT));
            objectOutputStream.close();
            return string;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    private static Object String2Object(String objectString) {
        byte[] mobileBytes = Base64.decode(objectString.getBytes(), Base64.DEFAULT);
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(mobileBytes);
        ObjectInputStream objectInputStream = null;
        try {
            objectInputStream = new ObjectInputStream(byteArrayInputStream);
            Object object = objectInputStream.readObject();
            objectInputStream.close();
            return object;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public static void saveSerializableEntity(String key, Object saveObject) {
        SharedPreferences.Editor editor = getAppPreference().edit();
        String string = Object2String(saveObject);
        editor.putString(key, string);
        editor.commit();
    }
    public static Object getSerializableEntity(String key) {
        String string = getAppPreference().getString(key, null);
        if (string != null) {
            Object object = String2Object(string);
            return object;
        } else {
            return null;
        }
    }
}
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -12,6 +12,7 @@
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;
@@ -181,6 +182,34 @@
    }
    /**
     * 检测更新
     *
     * @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      从网关(设备)oid
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/response/UpdateInfo.java
New file
@@ -0,0 +1,90 @@
package com.hdl.sdk.connect.bean.response;
import java.io.Serializable;
/**
 * Created by panlili on 2023/8/30.
 */
public class UpdateInfo implements Serializable {
    private String version;
    private String appName;
    private String appCode;
    //是否强制更新
    private Boolean isEnforce;
    //类型
    private String releaseSystem;
    //新包下载路径
    private String packageUrl;
    //更新说明
    private String remark;
    public String getVersion() {
        return version;
    }
    public void setVersion(String version) {
        this.version = version;
    }
    public String getAppName() {
        return appName;
    }
    public void setAppName(String appName) {
        this.appName = appName;
    }
    public String getAppCode() {
        return appCode;
    }
    public void setAppCode(String appCode) {
        this.appCode = appCode;
    }
    public Boolean getIsEnforce() {
        return isEnforce;
    }
    public void setIsEnforce(Boolean isEnforce) {
        this.isEnforce = isEnforce;
    }
    public String getReleaseSystem() {
        return releaseSystem;
    }
    public void setReleaseSystem(String releaseSystem) {
        this.releaseSystem = releaseSystem;
    }
    public String getPackageUrl() {
        return packageUrl;
    }
    public void setPackageUrl(String packageUrl) {
        this.packageUrl = packageUrl;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Override
    public String toString() {
        return "UpdateInfo{" +
                "version='" + version + '\'' +
                ", appName='" + appName + '\'' +
                ", appCode='" + appCode + '\'' +
                ", isEnforce=" + isEnforce +
                ", releaseSystem='" + releaseSystem + '\'' +
                ", packageUrl='" + packageUrl + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }
}
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/CheckAppVersionListener.java
New file
@@ -0,0 +1,11 @@
package com.hdl.sdk.connect.cloud;
import com.hdl.sdk.connect.bean.response.UpdateInfo;
/**
 * Created by panlili on 2023/8/30.
 */
public interface CheckAppVersionListener extends BaseCallBack {
    void onSuccess(UpdateInfo info);
}
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudApi.java
@@ -15,4 +15,7 @@
    //申请设备密钥(根据设备MAC)
    public static final String APPLY_DEVICE_SECRET = "/smart-open/third/device/authByMac";
    //检查app是否更新
    public static final String CHECK_APP_VERSION_URL = "/basis-footstone/app/appVersion/check";
}
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/cloud/HdlCloudController.java
@@ -1,6 +1,7 @@
package com.hdl.sdk.connect.cloud;
import com.hdl.hdlhttp.HxHttp;
import com.hdl.sdk.connect.bean.response.UpdateInfo;
import io.reactivex.rxjava3.disposables.Disposable;
@@ -35,4 +36,30 @@
                });
    }
    /**
     * 检查app是否更新
     *
     * @return
     */
    public static Disposable checkAppVersion(String versionCode, String appCode, CheckAppVersionListener listener) {
        return HxHttp.builder()
                .url(HdlCloudApi.BASE_CHINA_URL + HdlCloudApi.CHECK_APP_VERSION_URL)
                .params("version", versionCode)
                .params("appCode", appCode)
                .params("releaseSystem", "Android")
                .build()
                .post()
                .subscribeWith(new HDLResponse<UpdateInfo>() {
                    @Override
                    public void onResponse(UpdateInfo response) {
                        listener.onSuccess(response);
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        listener.onError(e);
                    }
                });
    }
}
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
@@ -19,6 +19,7 @@
    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";
    private String localSecret;//本地加密密钥
    private String gatewayId;
@@ -187,11 +188,13 @@
    }
    public AuthenticateRequest.AuthenticateDeviceInfoBean getDeviceInfoBean() {
        return deviceInfoBean;
        AuthenticateRequest.AuthenticateDeviceInfoBean infoBean = (AuthenticateRequest.AuthenticateDeviceInfoBean) SPUtils.getSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY);
        return infoBean;
    }
    public void setDeviceInfoBean(AuthenticateRequest.AuthenticateDeviceInfoBean deviceInfoBean) {
        this.deviceInfoBean = deviceInfoBean;
        SPUtils.saveSerializableEntity(AUTHENTICATE_IS_DEVICEINFO_KEY, deviceInfoBean);
    }
    public AuthenticateRequest.RequestBean getRequestBean() {
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -1,5 +1,7 @@
package com.hdl.sdk.connect.socket;
import static com.hdl.sdk.connect.config.HDLLinkConfig.AUTHENTICATE_IS_DEVICEINFO_KEY;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
@@ -130,6 +132,10 @@
                                if (!TextUtils.isEmpty(data)) {
                                    DeviceInfoResponse response = GsonConvert.getGson().fromJson(data, new TypeToken<DeviceInfoResponse>() {
                                    }.getType());
                                    if ((response == null) || (response.getObjects() == null) || (response.getObjects().getIPAddress() == null))
                                        return;
                                    HDLLinkConfig.getInstance().setIpAddress(response.getObjects().getIPAddress());
                                    LogUtils.i("---getIpAddress=" + HDLLinkConfig.getInstance().getIpAddress());
HDLSDK/settings.gradle
@@ -1,5 +1,5 @@
//include ':app'
include ':app'
//include ':hdl-socket'
include ':hdl-connect'
//include ':hdl-common'