mac
2024-01-23 976d3d484b25ea184a5da6968d4ad18605e5aa86
2024年01月23日16:19:09

适配android 6.0
6个文件已修改
88 ■■■■ 已修改文件
app/src/main/java/com/hdl/photovoltaic/codes/CustomCloudCode.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values-en/strings.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values-zh/strings.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/strings.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/codes/CustomCloudCode.java
@@ -1,4 +1,9 @@
package com.hdl.photovoltaic.codes;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
public class CustomCloudCode {
    public final String data_null = HDLApp.getInstance().getString(R.string.message_alarm_data_null);
}
app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -331,6 +331,34 @@
     * @param filePath 全路径
     * @return 数据
     */
    public byte[] readFileByte1(String filePath) {
        try {
            if (!isBoolean(filePath)) {
                return null;
            }
            File f = new File(filePath);
            if (!f.exists()) {
                return null;
            }
            FileInputStream fis = new FileInputStream(f);
            byte[] bytes = FileUtils.readFileToByteArray(f);//这个方法不兼用android 6.0
            fis.close();
            System.out.println("读取文件成功--->" + filePath);
            return bytes;
        } catch (Exception e1) {
            System.out.println("读取文件有异常--->" + e1.getMessage());
            return null;
        }
    }
    /**
     * 读取文件
     *
     * @param filePath 全路径
     * @return 数据
     */
    public byte[] readFileByte(String filePath) {
        try {
            if (!isBoolean(filePath)) {
@@ -341,7 +369,11 @@
                return null;
            }
            FileInputStream fis = new FileInputStream(f);
            byte[] bytes = FileUtils.readFileToByteArray(f);
            BufferedInputStream bis = new BufferedInputStream(fis);
            int fileLength = (int) f.length();
            byte[] bytes = new byte[fileLength];
            int len = bis.read(bytes);
            bis.close();
            fis.close();
            System.out.println("读取文件成功--->" + filePath);
            return bytes;
app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
@@ -17,6 +17,7 @@
import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean;
import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
@@ -534,12 +535,12 @@
        this.stopDownload = false;
        //-100:没有数据;-101:没有md5秘钥;-102:md5秘钥不对;-103:有异常;
        if (zipData == null) {
            this.eventBusPost(fileFullPath, driver, -100, "拉不到云端升级文件数据");
            this.eventBusPost(fileFullPath, driver, -100, HDLApp.getInstance().getString(R.string.exception_unable_to_pull_up_the_cloud_upgrade_file_data));
            HdlLogLogic.print("拉不到云端升级文件数据(-100)", true);
            return false;
        }
        if (TextUtils.isEmpty(md5)) {
            this.eventBusPost(fileFullPath, driver, -101, "拿不到云端上升级文件md5秘钥");
            this.eventBusPost(fileFullPath, driver, -101, HDLApp.getInstance().getString(R.string.exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud));
            HdlLogLogic.print("拿不到云端上升级文件md5秘钥(-101)", true);
            return false;
        }
@@ -553,7 +554,7 @@
            is = zipData.byteStream();
            long total = zipData.contentLength();
            if (total == 0) {
                this.eventBusPost(fileFullPath, driver, -102, "拉不到云端升级文件数据");
                this.eventBusPost(fileFullPath, driver, -102, HDLApp.getInstance().getString(R.string.exception_unable_to_pull_up_the_cloud_upgrade_file_data));
                HdlLogLogic.print("拉不到云端升级文件数据(-102)", true);
                return false;
            }
@@ -561,7 +562,7 @@
            long sum = 0;
            while ((len = is.read(buf)) != -1) {
                if (this.stopDownload) {
                    this.eventBusPost(fileFullPath, driver, -108, "用户取消下载升级文件.");
                    this.eventBusPost(fileFullPath, driver, -108, HDLApp.getInstance().getString(R.string.exception_the_user_cancels_downloading_the_upgrade_file));
                    HdlLogLogic.print("用户取消下载升级文件(-108)", true);
                    fos.flush();
                    fos.close();
@@ -583,27 +584,27 @@
            fos.close();
            is.close();
            byte[] bytes = FileUtils.readFileToByteArray(file);
            //下载文件需要解密之后再进行md5去做比对
            //todo 下载文件需要解密之后再进行md5去做比对
            byte[] decrypt = AesUtils.decrypt(bytes);
            if (decrypt == null) {
                this.eventBusPost(fileFullPath, driver, -105, "升级文件aes解密失败.");
                this.eventBusPost(fileFullPath, driver, -105, HDLApp.getInstance().getString(R.string.exception_failed_to_decrypt_the_upgrade_aes_file));
                HdlLogLogic.print("升级文件aes解密失败(-105)", true);
                return false;
            }
            String fileMD5 = Md5Utils.encodeMD5(decrypt);
            if (TextUtils.isEmpty(fileMD5)) {
                this.eventBusPost(fileFullPath, driver, -106, "升级文件生成md5失败失败.");
                this.eventBusPost(fileFullPath, driver, -106, HDLApp.getInstance().getString(R.string.exception_failed_to_generate_md5_for_the_upgrade_file));
                HdlLogLogic.print("升级文件生成md5失败失败(-106)", true);
                return false;
            }
            if (!md5.equals(fileMD5)) {
                this.eventBusPost(fileFullPath, driver, -107, "升级文件md5比对失败.");
                this.eventBusPost(fileFullPath, driver, -107, HDLApp.getInstance().getString(R.string.exception_description_failed_to_compare_the_md5_of_the_upgrade_file));
                HdlLogLogic.print("升级文件md5比对失败(-107)", true);
                return false;
            }
            //todo 注意:解密之后,要重新写数据;
            FileUtils.writeByteArrayToFile(file, decrypt, false);
            this.eventBusPost(fileFullPath, driver, 100, "升级文件下载完成.");
            this.eventBusPost(fileFullPath, driver, 100, HDLApp.getInstance().getString(R.string.exception_the_upgrade_file_is_downloaded));
            HdlLogLogic.print("升级文件下载完成.", true);
            return true;
        } catch (Exception e) {
@@ -658,7 +659,6 @@
    //自定义上报下载驱动或固件进度主题
    public static final String localDownloadProgress = "cloud/download/progress/up";
    public static final String driver_type = "driver";
app/src/main/res/values-en/strings.xml
@@ -209,4 +209,13 @@
    <string name="go_to_settings">Go to Settings</string>
    <string name="system_positioning_switch">You need to turn on the system positioning switch. Otherwise, the system can obtain the position information.</string>
    <!--异常-->
    <string name="exception_unable_to_pull_up_the_cloud_upgrade_file_data">Unable to pull up the cloud upgrade file data</string>
    <string name="exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud">Failed to obtain the md5 key of the upgrade file on the cloud</string>
    <string name="exception_the_user_cancels_downloading_the_upgrade_file">The user cancels downloading the upgrade file.</string>
    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">Failed to decrypt the upgrade aes file.</string>
    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">Failed to generate md5 for the upgrade file.</string>
    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">Description Failed to compare the md5 of the upgrade file.</string>
    <string name="exception_the_upgrade_file_is_downloaded">The upgrade file is downloaded.</string>
</resources>
app/src/main/res/values-zh/strings.xml
@@ -208,4 +208,14 @@
    <string name="system_positioning_switch">需要打开系统定位开关,否则取法获取位置信息.</string>
    <!--异常-->
    <string name="exception_unable_to_pull_up_the_cloud_upgrade_file_data">拉不到云端升级文件数据</string>
    <string name="exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud">拿不到云端上升级文件md5秘钥</string>
    <string name="exception_the_user_cancels_downloading_the_upgrade_file">用户取消下载升级文件.</string>
    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">升级文件aes解密失败.</string>
    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">升级文件生成md5失败失败.</string>
    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">升级文件md5比对失败.</string>
    <string name="exception_the_upgrade_file_is_downloaded">升级文件下载完成.</string>
</resources>
app/src/main/res/values/strings.xml
@@ -207,7 +207,13 @@
    <string name="go_to_settings">前往设置</string>
    <string name="system_positioning_switch">需要打开系统定位开关,否则取法获取位置信息.</string>
    <!--异常-->
    <string name="exception_unable_to_pull_up_the_cloud_upgrade_file_data">拉不到云端升级文件数据</string>
    <string name="exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud">拿不到云端上升级文件md5秘钥</string>
    <string name="exception_the_user_cancels_downloading_the_upgrade_file">用户取消下载升级文件.</string>
    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">升级文件aes解密失败.</string>
    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">升级文件生成md5失败失败.</string>
    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">升级文件md5比对失败.</string>
    <string name="exception_the_upgrade_file_is_downloaded">升级文件下载完成.</string>
</resources>