diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt index 2e08b89f0a..a2db214fb2 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt @@ -162,8 +162,10 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener { * 查询app是否需要升级 */ fun queryAppUpgrade() { - UpgradeAppNetWorkManager.getInstance() - .getAppUpgradeInfo(mContext, mAddress, role.toString() + "") +// UpgradeAppNetWorkManager.getInstance() +// .getAppUpgradeInfo(mContext, mAddress, role.toString() + "") + + ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, "") } /** @@ -171,7 +173,7 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener { * */ private fun queryObuUpgrade(macAddress: String) { - ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, macAddress) +// ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, macAddress) } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java index cf5a8832bd..1d143b150b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/ObuUpgradeAppNetWorkManager.java @@ -3,17 +3,16 @@ package com.zhjt.mogo_core_function_devatools.upgrade; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BINDING; import android.content.Context; +import android.util.Log; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.constants.HostConst; import com.mogo.eagle.core.data.bindingcar.UpgradeAppInfo; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.network.MoGoRetrofitFactory; import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.AppUtils; - import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.annotations.NonNull; @@ -50,16 +49,23 @@ public class ObuUpgradeAppNetWorkManager { /** * 获取obu升级信息,obu升级服务端使用app升级接口,根据screenType区分类型 - * mac :工控机mac地址 - * screenType : 类型 + * mac :工控机mac地址, TODO 立即升级,还是 + * screenType : 类型 liyz */ public void getObuUpgradeInfo(Context context, String mac) { // String sn = "X20202203105S688HZ"; -// String mac = "48:b0:2d:3a:bc:78"; + +// MogoObuManager().getInstance().readSystemBConfig(context, obuIp, listener) + + //obuIp? +// MogoObuManager().getInstance().uploadUpgradePackage(obuIp, upgradePackage, listener) + + Log.e("liyz", "ObuUpgradeAppNetWorkManager getObuUpgradeInfo -----------> "); + String mac1 = "48:b0:2d:4d:33:40"; String sn = MoGoAiCloudClientConfig.getInstance().getSn(); String obuVersionName = String.valueOf(AppUtils.getAppVersionCode()); // TODO 获取obu的版本号, string和int 服务端处理 - CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo mac = " + mac + "---sn = " + sn + "---obuVersionName =" + obuVersionName); - UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, "7"); + CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo mac = " + mac1 + " ---sn = " + sn + " ---obuVersionName = " + obuVersionName); + UpgradeAppRequest request = new UpgradeAppRequest(sn, mac1, "7"); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mUpgradeApiService.getUpgradeInfo(requestBody) .subscribeOn(Schedulers.io()) @@ -72,11 +78,11 @@ public class ObuUpgradeAppNetWorkManager { @Override public void onNext(@NonNull UpgradeAppInfo info) { if (info != null && info.result != null) { - CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo url = " + info.result.getAppUrl() + "----name = " + info.result.getVersionName() + "--obuVersionName =" + obuVersionName + "--info.result = " + info.result); - if (!String.valueOf(info.result.getVersionName()).equals(obuVersionName)) { - //下载 TAG和文件名 TODO - CallerDevaToolsManager.INSTANCE.downLoadPackage("OBU", info.result.getAppUrl()); - } + CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo appFileName = " + info.result.getAppFileName() + " ----url = " + info.result.getAppUrl() + " ----name = " + info.result.getVersionName() + " --obuVersionName =" + obuVersionName + " ---info.result = " + info.result); + Log.d("liyz", "getObuUpgradeInfo appFileName = " + info.result.getAppFileName() + " ----url = " + info.result.getAppUrl() + " ----name = " + info.result.getVersionName() + " --obuVersionName =" + obuVersionName + " ---info.result = " + info.result); +// if (!String.valueOf(info.result.getVersionName()).equals(obuVersionName)) { //判断是否下载,当文件名称不一致的时候,就下载 TODO + CallerDevaToolsManager.INSTANCE.downLoadPackage(info.result.getAppFileName(), info.result.getAppUrl()); +// } } else { CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo onNext info == null"); } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt index 3fdbdce9b6..9888115ce9 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt @@ -2,6 +2,7 @@ package com.zhjt.mogo_core_function_devatools.upgrade import android.app.NotificationManager import android.content.Context +import android.util.Log import androidx.core.app.NotificationCompat import com.elegant.utils.UiThreadHandler import com.mogo.eagle.core.function.api.devatools.IMogoDevaToolsUpgradeListener @@ -29,12 +30,18 @@ class UpgradeManager : IDownload { } private var map: Map? = null + private var mDownloadFileName: String? = null fun downLoadPackage(context: Context, downloadKey: String,downloadUrl: String) { + Log.d("liyz", "UpgradeManager downLoadPackage = " + downloadUrl?.contains(".zip") + "----downloadKey = $downloadKey ---downloadUrl = $downloadUrl") + if (downloadUrl?.contains(".zip")) { + mDownloadFileName = downloadKey + } + DownloadUtils.downLoad( context, downloadUrl, - Config.downLoadPath, + if (downloadUrl?.contains(".zip")) Config.downLoadObuPath else Config.downLoadPath, downloadKey, 5, this @@ -81,13 +88,15 @@ class UpgradeManager : IDownload { } override fun onFinished(downloadUrl: String?, threadBean: ThreadBean?) { - if (downloadUrl != null) { + if (downloadUrl != null) { //TODO 需要判断是否是apk文件 AppUtils.installApp(Config.downLoadPath + downloadUrl.substring(downloadUrl.lastIndexOf("/") + 1)) } if (downloadUrl != null) { if (map.isNullOrEmpty()) { + Log.d("liyz", "onFinished ----1------") CallerDevaToolsUpgradeListenerManager.invokeUpgradeFinish(downloadUrl) } else { + Log.d("liyz", "onFinished ----2------") findKey(downloadUrl) { CallerDevaToolsUpgradeListenerManager.invokeUpgradeFinish(it) } @@ -97,6 +106,7 @@ class UpgradeManager : IDownload { override fun onError(downloadUrl: String?, errorMsg: String?) { CallerLogger.d("$M_DEVA$TAG","onError downloadUrl : $downloadUrl , errorMsg : $errorMsg") + Log.e("liyz","onError downloadUrl : $downloadUrl , errorMsg : $errorMsg") if (downloadUrl != null) { if (map.isNullOrEmpty()) { CallerDevaToolsUpgradeListenerManager.invokeUpgradeError(downloadUrl, errorMsg ?: "未知错误") @@ -111,6 +121,7 @@ class UpgradeManager : IDownload { private fun findKey(downloadUrl: String?, findResult: (downloadUrl: String) -> Unit) { downloadUrl?.let { url -> map?.iterator()?.forEach { + Log.d("liyz", "findKey it.value = ${it.value} ----url = $url") if (it.value == url) { findResult.invoke(it.key) } @@ -119,7 +130,7 @@ class UpgradeManager : IDownload { } /** - * 鹰眼app下载监听 + * 鹰眼app下载监听 liyz */ fun updateUpgradeProgress(context: Context) { val builder = NotificationCompat.Builder(context) @@ -153,7 +164,7 @@ class UpgradeManager : IDownload { } /** - * obu升级包下载监听 + * obu升级包下载监听 liyz */ fun updateObuUpgradeStatus(context: Context) { CallerDevaToolsUpgradeListenerManager.addListener( @@ -162,23 +173,29 @@ class UpgradeManager : IDownload { override fun onStart(url: String?) {} override fun onPause(url: String?) {} override fun onProgress(url: String?, length: Int) { - } override fun onFinished(url: String?) { - //下载完成,解压文件 TODO + //下载完成,解压文件 try { - val files = ZipUtils.unzipFile("", "") - //传给obu升级 + ///storage/emulated/0/obu/MOGO_OBUAPPS_V503A_PACK.zip + Log.d("liyz", " onFinished file = ${Config.downLoadObuPath + mDownloadFileName} ") + val files = ZipUtils.unzipFile(Config.downLoadObuPath + mDownloadFileName, Config.downLoadUnzipObuPath) + Log.d("liyz", " onFinished files = $files ") + //1传给obu升级,升级成功,2需要删除相应文件夹 TODO +// onFinished files = [/storage/emulated/0/obuunzip/MOGO_OBUAPPS_V503A_PATCH.tar.gz, /storage/emulated/0/obuunzip/README.txt, /storage/emulated/0/obuunzip/version.json] + } catch (e: IOException) { //解压失败 - + Log.e("liyz", "unzip failed -----> ") e.printStackTrace() } } - override fun onError(url: String?, errorMsg: String?) {} + override fun onError(url: String?, errorMsg: String?) { + Log.d("liyz", " onProgress errorMsg = $errorMsg ") + } }) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 1e80ca8ec3..217aa5e057 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -54,7 +54,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { clearMessageBoxTable(); CallerMsgBoxManager.INSTANCE.queryAllMessages(this); } - CallerDevaToolsManager.INSTANCE.updateUpgradeProgress(); +// CallerDevaToolsManager.INSTANCE.updateUpgradeProgress(); CallerDevaToolsManager.INSTANCE.updateObuUpgradeStatus(); } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/AppInfo.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/AppInfo.java index 86c04140ab..9e731a91b0 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/AppInfo.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/AppInfo.java @@ -17,6 +17,7 @@ public class AppInfo implements Serializable { private String installType; // 升级类型 1:提示升级 2:静默升级 3:强制升级 private String beginTime; private String endTime; + private String appFileName; public String getAppUrl() { return appUrl; @@ -90,6 +91,14 @@ public class AppInfo implements Serializable { this.endTime = endTime; } + public String getAppFileName() { + return appFileName; + } + + public void setAppFileName(String appFileName) { + this.appFileName = appFileName; + } + @Override public String toString() { return "AppInfo{" + @@ -102,6 +111,7 @@ public class AppInfo implements Serializable { ", installType='" + installType + '\'' + ", beginTime='" + beginTime + '\'' + ", endTime='" + endTime + '\'' + + ", appFileName='" + appFileName + '\'' + '}'; } } diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java index 987c395343..b92e60027b 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/Config.java @@ -16,5 +16,8 @@ public class Config { public final static String downLoadObuPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/obu/"; + public final static String downLoadUnzipObuPath = Environment.getExternalStorageDirectory().getAbsolutePath() + + "/obuunzip/"; + public final static String DOWN_LOAD_TAG = "Package-DownLoad"; } diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java index 39604be8b1..c1a1c34310 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java @@ -75,6 +75,7 @@ public class DownloadTask implements DownloadCallBack { } downloadCallBack.startDownload(fileBean.getUrl()); Log.d(DOWN_LOAD_TAG, " 开始下载:" + finishedProgress); + Log.d("liyz", " DownloadTask 开始下载:" + finishedProgress + "---fileBean.getUrl() = " + fileBean.getUrl()); } /** @@ -144,6 +145,7 @@ public class DownloadTask implements DownloadCallBack { } if (threads.size() == 0) {//如果列表size为0 则所有线程已下载完成 Log.d(DOWN_LOAD_TAG, " DownloadTask threadDownLoadFinished 下载完成----->"); + Log.d("liyz", "threadDownLoadFinished ------------ 下载完成-----> "); //删除数据库中的信息 dao.deleteThread(fileBean.getUrl()); //发送下载完成事件 diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java index c20becc8ee..bff247603d 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java @@ -51,11 +51,13 @@ public class DownloadThread extends Thread { int start = threadBean.getStart() + threadBean.getFinished(); connection.setRequestProperty("Range","bytes="+start+"-"+threadBean.getEnd()); //设置写入位置 - File file = new File(Config.downLoadPath,fileBean.getFileName()); + Log.d("liyz", "fileBean.getFileName() = " + fileBean.getFileName() + "---Config.downLoadPath = " + Config.downLoadPath); + File file = new File(fileBean.getFileName().contains(".zip") ? Config.downLoadObuPath : Config.downLoadPath,fileBean.getFileName()); raf = new RandomAccessFile(file,"rwd"); raf.seek(start); //开始下载 Log.d(DOWN_LOAD_TAG, "DownloadThread connection.getResponseCode() = " + connection.getResponseCode() + "---threadBean.getUrl() =" + threadBean.getUrl()); + Log.d("liyz", "DownloadThread connection.getResponseCode() = " + connection.getResponseCode() + "---threadBean.getUrl() =" + threadBean.getUrl()); if(connection.getResponseCode() == HttpURLConnection.HTTP_PARTIAL){ inputStream = connection.getInputStream(); byte[] bytes = new byte[1024]; @@ -77,6 +79,7 @@ public class DownloadThread extends Thread { } } catch (Exception e) { + Log.e("liyz", "DownloadThread ---1---- e = " + e); e.printStackTrace(); DownloadData downloadData = new DownloadData(); downloadData.setUrl(fileBean.getUrl()); diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/utils/DownloadUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/utils/DownloadUtils.java index 05c06c7508..5bc2dd96b7 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/utils/DownloadUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/utils/DownloadUtils.java @@ -2,6 +2,7 @@ package com.mogo.eagle.core.utilcode.breakpoint.utils; import android.content.Context; import android.content.Intent; +import android.util.Log; import com.mogo.eagle.core.utilcode.breakpoint.bean.FileBean; import com.mogo.eagle.core.utilcode.breakpoint.callback.IDownload; @@ -11,6 +12,7 @@ import com.mogo.eagle.core.utilcode.breakpoint.services.DownloadService; public class DownloadUtils { public static void downLoad(Context context, String url, String savePath, String fileName, int downloadThreadCount, IDownload iDownload) { + Log.d("liyz", "---DownloadUtils fileName = " + fileName); FileBean fileBean = new FileBean(0, savePath, fileName, url, 0); fileBean.setThreadCount(downloadThreadCount); Intent startIntent = new Intent(context, DownloadService.class);