From 99f74e9f838be6f3cc4a71bdc30c99a4c67dfb1d Mon Sep 17 00:00:00 2001 From: FHT <981964879@qq.com> Date: Wed, 31 Mar 2021 23:42:18 +0800 Subject: [PATCH] =?UTF-8?q?version:=20update:2021.03.31=20fix:=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=8E=A8=E9=80=81=E6=B2=A1=E6=9C=89=E8=87=AA=E5=90=AF?= =?UTF-8?q?=EF=BC=8C=E5=BC=80=E6=9C=BA=E5=8A=A8=E7=94=BB=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=20add:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 +- .../appstore/activity/MainActivity.java | 5 + .../appstore/activity/MainContact.java | 4 + .../appstore/activity/MainPresenter.java | 65 ++++++++++-- .../appstore/activity/SplashActivity.java | 2 + .../appstore/base/BaseApplication.java | 2 +- .../appstore/bean/BaseResponse.java | 1 + .../com/jiaoguanyi/appstore/bean/Desktop.java | 43 ++++++++ .../com/jiaoguanyi/appstore/bean/LogoImg.java | 34 +++++++ .../appstore/manager/NetInterfaceManager.java | 13 ++- .../appstore/network/URLAddress.java | 2 + .../network/api/newapi/GetDesktopApi.java | 4 +- .../network/api/newapi/LogoImgApi.java | 16 +++ .../appstore/server/GuardService.java | 99 ++++++++++--------- .../appstore/server/MainService.java | 29 +++--- .../jiaoguanyi/appstore/utils/JGYUtils.java | 60 +++++++++++ .../appstore/utils/SysSettingUtils.java | 2 +- .../appstore/utils/SystemUtils.java | 2 +- .../jiaoguanyi/appstore/utils/TimeUtils.java | 4 + .../com/jiaoguanyi/appstore/utils/Utils.java | 6 +- .../utils/{XApkUtils.java => XAPKUtils.java} | 2 +- 21 files changed, 324 insertions(+), 79 deletions(-) create mode 100644 app/src/main/java/com/jiaoguanyi/appstore/bean/Desktop.java create mode 100644 app/src/main/java/com/jiaoguanyi/appstore/bean/LogoImg.java create mode 100644 app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/LogoImgApi.java rename app/src/main/java/com/jiaoguanyi/appstore/utils/{XApkUtils.java => XAPKUtils.java} (62%) diff --git a/app/build.gradle b/app/build.gradle index bcc5cc2..b6e9a32 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,11 +9,11 @@ def releaseTime() { } android { - compileSdkVersion 30 + compileSdkVersion 29 defaultConfig { applicationId "com.jiaoguanyi.appstore" minSdkVersion 20 - targetSdkVersion 30 + targetSdkVersion 29 // versionCode 105 // versionName "3.1.0"//测试jiaoguanyi.cn @@ -105,8 +105,8 @@ android { newl { flavorDimensions "default" - versionCode 167 -// versionCode 1031 +// versionCode 167 + versionCode 1033 versionName "1.2.7" /*********************************极光推送************************************/ manifestPlaceholders = [ diff --git a/app/src/main/java/com/jiaoguanyi/appstore/activity/MainActivity.java b/app/src/main/java/com/jiaoguanyi/appstore/activity/MainActivity.java index 1acce1f..53fce3f 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/activity/MainActivity.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/activity/MainActivity.java @@ -324,6 +324,11 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { @Override public void setSystemSettingFinished() { + mPresenter.setLogoImg(); + } + + @Override + public void setLogoImgFinished() { netWorkIsRunning = false; Log.e(TAG, "SettingFinished: " + (System.currentTimeMillis() - timeMillis) + " ms"); } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/activity/MainContact.java b/app/src/main/java/com/jiaoguanyi/appstore/activity/MainContact.java index 56d59dd..fced0a6 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/activity/MainContact.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/activity/MainContact.java @@ -59,6 +59,8 @@ public class MainContact { //获取第三方应用内部网页跳转屏蔽结束 void setSystemSettingFinished(); //获取系统其他管控设置结束 + void setLogoImgFinished (); + //设置开机动画 /* * MainService * */ @@ -116,6 +118,8 @@ public class MainContact { //获取第三方应用内部网页跳转屏蔽 void setSystemSetting(); //获取系统其他管控设置 + void setLogoImg(); + //设置开机动画 /* * MainService * */ diff --git a/app/src/main/java/com/jiaoguanyi/appstore/activity/MainPresenter.java b/app/src/main/java/com/jiaoguanyi/appstore/activity/MainPresenter.java index 404f52c..461137b 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/activity/MainPresenter.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/activity/MainPresenter.java @@ -25,7 +25,9 @@ import com.jiaoguanyi.appstore.bean.BaseResponse; import com.jiaoguanyi.appstore.bean.Batch; import com.jiaoguanyi.appstore.bean.BrowserBookmarks; import com.jiaoguanyi.appstore.bean.BrowserData; +import com.jiaoguanyi.appstore.bean.Desktop; import com.jiaoguanyi.appstore.bean.ForceDownloadBean; +import com.jiaoguanyi.appstore.bean.LogoImg; import com.jiaoguanyi.appstore.bean.NetAndLaunchBean; import com.jiaoguanyi.appstore.bean.StudentsInfo; import com.jiaoguanyi.appstore.jpush.TagAliasOperatorHelper; @@ -1075,6 +1077,49 @@ public class MainPresenter implements MainContact.Presenter { } + @Override + public void setLogoImg() { + NetInterfaceManager.getInstance() + .getLogoImgObservable() + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("setLogoImg", "onSubscribe: "); + + } + + @Override + public void onNext(@NonNull BaseResponse logoImgBaseResponse) { + Log.e("setLogoImg", "onNext: "); + if (logoImgBaseResponse.code == 200) { + LogoImg logoImg = logoImgBaseResponse.data; + String file_url = logoImg.getFile_url(); + String file_md5 = logoImg.getFile_md5(); + String batch = logoImg.getBatch(); + if (TextUtils.isEmpty(file_url)) { + Log.e("setLogoImg", "onNext: file_url is empty"); + } else { + JGYUtils.getInstance().checkBootFile(file_url, file_md5); + } + } else { + Log.e("setLogoImg", "onNext: "); + } + } + + @Override + public void onError(@NonNull Throwable e) { + onComplete(); + Log.e("setLogoImg", "onError: "); + } + + @Override + public void onComplete() { + Log.e("setLogoImg", "onComplete: "); + mView.setLogoImgFinished(); + } + }); + } + @Override public void getScreenLockState() { String channel_value = JGYUtils.getInstance().getStringMetaData(); @@ -1127,21 +1172,27 @@ public class MainPresenter implements MainContact.Presenter { } NetInterfaceManager.getInstance() .getDesktopObservable() - .subscribe(new Observer() { + .subscribe(new Observer() { + + @Override public void onSubscribe(@NonNull Disposable d) { Log.e("getDefaultDesktop", "onSubscribe: "); } @Override - public void onNext(@NonNull BaseResponse response) { + public void onNext(@NonNull ResponseBody responseBody) { Log.e("getDefaultDesktop", "onNext: "); - if (response.code == 200) { - JSONObject jsonObject = JSONObject.parseObject(response.data.toString()); - JGYUtils.getInstance().installDesktop(jsonObject); - } else { - Log.e("getDefaultDesktop", "onNext: " + response); + try { + JSONObject jsonObject = JSONObject.parseObject(responseBody.string()); + JSONObject data = jsonObject.getJSONObject("data"); + JGYUtils.getInstance().installDesktop(data); + Log.e("getDefaultDesktop", "onNext: " + data.toJSONString()); + } catch (IOException e) { + e.printStackTrace(); + Log.e("getDefaultDesktop", "onNext: IOException: " + e.getMessage()); } + } @Override diff --git a/app/src/main/java/com/jiaoguanyi/appstore/activity/SplashActivity.java b/app/src/main/java/com/jiaoguanyi/appstore/activity/SplashActivity.java index f7f55c4..2ad432c 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/activity/SplashActivity.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/activity/SplashActivity.java @@ -1,5 +1,7 @@ package com.jiaoguanyi.appstore.activity; +import android.app.StatusBarManager; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Environment; diff --git a/app/src/main/java/com/jiaoguanyi/appstore/base/BaseApplication.java b/app/src/main/java/com/jiaoguanyi/appstore/base/BaseApplication.java index 3b5ea5b..b097cc2 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/base/BaseApplication.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/base/BaseApplication.java @@ -97,7 +97,7 @@ public class BaseApplication extends MultiDexApplication{ @Override public void onCreate() { super.onCreate(); - if (SystemUtils.IsMainProcessName(this, Process.myPid())) { + if (SystemUtils.isMainProcessName(this, Process.myPid())) { //非主进程不初始化 init(); } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/bean/BaseResponse.java b/app/src/main/java/com/jiaoguanyi/appstore/bean/BaseResponse.java index 0112909..fd71d56 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/bean/BaseResponse.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/bean/BaseResponse.java @@ -14,6 +14,7 @@ public class BaseResponse implements Serializable { public String msg; public T data; + @NonNull @Override public String toString() { diff --git a/app/src/main/java/com/jiaoguanyi/appstore/bean/Desktop.java b/app/src/main/java/com/jiaoguanyi/appstore/bean/Desktop.java new file mode 100644 index 0000000..dce4510 --- /dev/null +++ b/app/src/main/java/com/jiaoguanyi/appstore/bean/Desktop.java @@ -0,0 +1,43 @@ +package com.jiaoguanyi.appstore.bean; + +import java.io.Serializable; + +public class Desktop implements Serializable { + private static final long serialVersionUID = 8747792657698028628L; + private String app_name; + private String app_url; + private String app_package; + private String app_version_code; + + public String getApp_name() { + return app_name; + } + + public void setApp_name(String app_name) { + this.app_name = app_name; + } + + public String getApp_url() { + return app_url; + } + + public void setApp_url(String app_url) { + this.app_url = app_url; + } + + public String getApp_package() { + return app_package; + } + + public void setApp_package(String app_package) { + this.app_package = app_package; + } + + public String getApp_version_code() { + return app_version_code; + } + + public void setApp_version_code(String app_version_code) { + this.app_version_code = app_version_code; + } +} diff --git a/app/src/main/java/com/jiaoguanyi/appstore/bean/LogoImg.java b/app/src/main/java/com/jiaoguanyi/appstore/bean/LogoImg.java new file mode 100644 index 0000000..a9ec67b --- /dev/null +++ b/app/src/main/java/com/jiaoguanyi/appstore/bean/LogoImg.java @@ -0,0 +1,34 @@ +package com.jiaoguanyi.appstore.bean; + +import java.io.Serializable; + +public class LogoImg implements Serializable { + private static final long serialVersionUID = -225928093718933004L; + private String file_url; + private String file_md5; + private String batch; + + public String getFile_url() { + return file_url; + } + + public void setFile_url(String file_url) { + this.file_url = file_url; + } + + public String getFile_md5() { + return file_md5; + } + + public void setFile_md5(String file_md5) { + this.file_md5 = file_md5; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } +} diff --git a/app/src/main/java/com/jiaoguanyi/appstore/manager/NetInterfaceManager.java b/app/src/main/java/com/jiaoguanyi/appstore/manager/NetInterfaceManager.java index 16f1b90..0606b10 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/manager/NetInterfaceManager.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/manager/NetInterfaceManager.java @@ -8,7 +8,9 @@ import com.jiaoguanyi.appstore.bean.Appground; import com.jiaoguanyi.appstore.bean.BaseResponse; import com.jiaoguanyi.appstore.bean.BrowserBookmarks; import com.jiaoguanyi.appstore.bean.BrowserData; +import com.jiaoguanyi.appstore.bean.Desktop; import com.jiaoguanyi.appstore.bean.ForceDownloadBean; +import com.jiaoguanyi.appstore.bean.LogoImg; import com.jiaoguanyi.appstore.bean.NetAndLaunchBean; import com.jiaoguanyi.appstore.bean.StudentsInfo; import com.jiaoguanyi.appstore.network.api.AppLimitApi; @@ -33,6 +35,7 @@ import com.jiaoguanyi.appstore.network.api.newapi.GetBatchApi; import com.jiaoguanyi.appstore.network.api.newapi.GetDesktopApi; import com.jiaoguanyi.appstore.network.api.newapi.GetLockStateApi; import com.jiaoguanyi.appstore.network.api.newapi.JpushTagsApi; +import com.jiaoguanyi.appstore.network.api.newapi.LogoImgApi; import com.jiaoguanyi.appstore.network.api.newapi.MACAddressApi; import com.jiaoguanyi.appstore.network.api.newapi.ScreenLockStateApi; import com.jiaoguanyi.appstore.network.api.newapi.SnTimeControl; @@ -270,7 +273,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getDesktopObservable() { + public Observable getDesktopObservable() { return mRetrofit .create(GetDesktopApi.class) .getDesktop(Utils.getSerial()) @@ -286,6 +289,14 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } + public Observable> getLogoImgObservable() { + return mRetrofit + .create(LogoImgApi.class) + .getLogoImg(Utils.getSerial()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + /* * diff --git a/app/src/main/java/com/jiaoguanyi/appstore/network/URLAddress.java b/app/src/main/java/com/jiaoguanyi/appstore/network/URLAddress.java index 789d353..00f4869 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/network/URLAddress.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/network/URLAddress.java @@ -52,4 +52,6 @@ public class URLAddress { //获取顶部app管控 public final static String GET_SN_APP_TEST = HTTP_TAG_HEAD_NEW + "Sn/getSnAppTest"; //获取测试app + public final static String GET_LOGO_IMG = HTTP_TAG_HEAD_NEW + "Sn/getLogoImg"; + } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/GetDesktopApi.java b/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/GetDesktopApi.java index 00bc407..cefe5be 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/GetDesktopApi.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/GetDesktopApi.java @@ -1,15 +1,15 @@ package com.jiaoguanyi.appstore.network.api.newapi; -import com.jiaoguanyi.appstore.bean.BaseResponse; import com.jiaoguanyi.appstore.network.URLAddress; import io.reactivex.Observable; +import okhttp3.ResponseBody; import retrofit2.http.GET; import retrofit2.http.Query; public interface GetDesktopApi { @GET(URLAddress.GET_DESKTOP) - Observable getDesktop( + Observable getDesktop( @Query("sn") String sn ); } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/LogoImgApi.java b/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/LogoImgApi.java new file mode 100644 index 0000000..330f077 --- /dev/null +++ b/app/src/main/java/com/jiaoguanyi/appstore/network/api/newapi/LogoImgApi.java @@ -0,0 +1,16 @@ +package com.jiaoguanyi.appstore.network.api.newapi; + +import com.jiaoguanyi.appstore.bean.BaseResponse; +import com.jiaoguanyi.appstore.bean.LogoImg; +import com.jiaoguanyi.appstore.network.URLAddress; + +import io.reactivex.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface LogoImgApi { + @GET(URLAddress.GET_LOGO_IMG) + Observable> getLogoImg( + @Query("sn") String sn + ); +} diff --git a/app/src/main/java/com/jiaoguanyi/appstore/server/GuardService.java b/app/src/main/java/com/jiaoguanyi/appstore/server/GuardService.java index ef71dc5..8b49a05 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/server/GuardService.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/server/GuardService.java @@ -31,6 +31,7 @@ import com.arialyy.annotations.Download; import com.arialyy.aria.core.Aria; import com.arialyy.aria.core.download.DownloadEntity; import com.arialyy.aria.core.task.DownloadTask; +import com.jiaoguanyi.appstore.utils.JGYUtils; import com.lzy.okgo.OkGo; import com.lzy.okgo.callback.StringCallback; import com.jiaoguanyi.appstore.KeepAliveConnection; @@ -284,61 +285,65 @@ public class GuardService extends Service { void taskComplete(DownloadTask task) { //在这里处理任务完成的状态 final String filepath = task.getFilePath(); - final String packageName = task.getExtendField(); - Log.e("aria", "downloadPath::" + filepath); - Log.e("aria", "extendField::" + packageName); - JSONObject jsonObject = JSON.parseObject(task.getExtendField()); - String app_name = jsonObject.getString("app_name"); - String app_package = jsonObject.getString("app_package"); - ToastUtil.show(app_name + "\t:下载完成"); - OkGo.post(URLAddress.HTTP_TAG_DOWNLOAD_URL) - .params("key", NetInterfaceManager.HTTP_KEY) - .params("sn", Utils.getSerial()) - .params("package", app_package) - .tag(this) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, okhttp3.Response response) { - Log.e("taskComplete", s); - } + if (filepath.endsWith("apk")) { + final String packageName = task.getExtendField(); + Log.e("aria", "downloadPath::" + filepath); + Log.e("aria", "extendField::" + packageName); + JSONObject jsonObject = JSON.parseObject(task.getExtendField()); + String app_name = jsonObject.getString("app_name"); + String app_package = jsonObject.getString("app_package"); + ToastUtil.show(app_name + "\t:下载完成"); + OkGo.post(URLAddress.HTTP_TAG_DOWNLOAD_URL) + .params("key", NetInterfaceManager.HTTP_KEY) + .params("sn", Utils.getSerial()) + .params("package", app_package) + .tag(this) + .execute(new StringCallback() { + @Override + public void onSuccess(String s, Call call, okhttp3.Response response) { + Log.e("taskComplete", s); + } - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("taskComplete", ":" + e.getMessage()); - } - }); - int userId = (int) SPUtils.get(GuardService.this, "admin_id", 0); - long app_size = task.getFileSize(); - OkGo.post(URLAddress.SEND_DOWNLOAD_FILE_INFO) - .params("key", NetInterfaceManager.HTTP_KEY) - .params("sn", Utils.getSerial()) - .params("userId", userId) - .params("package_name", packageName) - .params("app_size", app_size) - .tag(this) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, okhttp3.Response response) { + @Override + public void onError(Call call, Response response, Exception e) { + super.onError(call, response, e); + Log.e("taskComplete", ":" + e.getMessage()); + } + }); + int userId = (int) SPUtils.get(GuardService.this, "admin_id", 0); + long app_size = task.getFileSize(); + OkGo.post(URLAddress.SEND_DOWNLOAD_FILE_INFO) + .params("key", NetInterfaceManager.HTTP_KEY) + .params("sn", Utils.getSerial()) + .params("userId", userId) + .params("package_name", packageName) + .params("app_size", app_size) + .tag(this) + .execute(new StringCallback() { + @Override + public void onSuccess(String s, Call call, okhttp3.Response response) { - } - }); + } + }); // ApkUtils.installApp(filepath); - new Thread(new Runnable() { - @Override - public void run() { - ApkUtils.installApp(GuardService.this, filepath); - } - }).start(); + new Thread(new Runnable() { + @Override + public void run() { + ApkUtils.installApp(GuardService.this, filepath); + } + }).start(); // try { // Aria.download(this).load(Aria.download(this).getFirstDownloadEntity(task.getKey()).getId()).cancel(); // } catch (Exception e) { // Log.e("aria", e.getMessage()); // } - List list = Aria.download(this).getDRunningTask(); - if (list == null || list.size() == 0) { - BaseApplication.getInstance().setDownloadState(false); - Log.e("aria", "isDownloading=" + BaseApplication.getInstance().isDownloading()); + List list = Aria.download(this).getDRunningTask(); + if (list == null || list.size() == 0) { + BaseApplication.getInstance().setDownloadState(false); + Log.e("aria", "isDownloading=" + BaseApplication.getInstance().isDownloading()); + } + } else if (filepath.endsWith("zip")) { + JGYUtils.getInstance().setBootanimation(task.getFilePath()); } } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/server/MainService.java b/app/src/main/java/com/jiaoguanyi/appstore/server/MainService.java index b84e16e..3575189 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/server/MainService.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/server/MainService.java @@ -62,24 +62,26 @@ public class MainService extends Service implements MainContact.MainView { mPresenter.detachView(); } - long timeMillis; + long runningTime; + //执行所有请求的时间 long startCommandTime = 0; + //MainService上次执行时间 @Override public int onStartCommand(Intent intent, int flags, int startId) { - if ((SystemClock.elapsedRealtime() - startCommandTime) < 60000) { - Log.e(TAG, "onStartCommand: " + "启动时间过短"); - //一分钟内防止多次调用 - } else { - startCommandTime = SystemClock.elapsedRealtime(); - if (MainActivity.isForeground) { + if (MainActivity.isForeground){ + Log.e(TAG, "onStartCommand: MainActivity: " + MainActivity.isForeground); + }else { + if (((SystemClock.elapsedRealtime() - startCommandTime) < 60000) ){ + Log.e(TAG, "onStartCommand: " + "启动时间过短"); + //一分钟内防止多次调用 + }else { mPresenter.getFirstConnect(); - timeMillis = System.currentTimeMillis(); mPresenter.getLockedState(); - Log.e(TAG, "onStartCommand: " + (SystemClock.elapsedRealtime() - startCommandTime)); - } else { + startCommandTime = runningTime = SystemClock.elapsedRealtime(); Log.e(TAG, "onStartCommand: isForeground: " + MainActivity.isForeground); + Log.e(TAG, "onStartCommand: " + (SystemClock.elapsedRealtime() - startCommandTime)); } } return START_STICKY; @@ -420,8 +422,13 @@ public class MainService extends Service implements MainContact.MainView { @Override public void setSystemSettingFinished() { + mPresenter.setLogoImg(); + } + + @Override + public void setLogoImgFinished() { netWorkIsRunning = false; - Log.e(TAG, "SettingFinished: " + (System.currentTimeMillis() - timeMillis) + " ms"); + Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - runningTime) + " ms"); } @Override diff --git a/app/src/main/java/com/jiaoguanyi/appstore/utils/JGYUtils.java b/app/src/main/java/com/jiaoguanyi/appstore/utils/JGYUtils.java index 32f72f6..a7925d8 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/utils/JGYUtils.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/utils/JGYUtils.java @@ -10,12 +10,15 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.BatteryManager; import android.os.Build; +import android.os.Environment; import android.os.PowerManager; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import com.alibaba.fastjson.JSONObject; +import com.blankj.utilcode.util.FileUtils; +import com.blankj.utilcode.util.PathUtils; import com.google.gson.JsonObject; import com.jiaoguanyi.appstore.BuildConfig; import com.jiaoguanyi.appstore.base.BaseApplication; @@ -26,6 +29,14 @@ import com.jiaoguanyi.appstore.bean.NetAndLaunchBean; import com.jiaoguanyi.appstore.bean.NetAndLaunchData; import com.jiaoguanyi.appstore.comm.CommonDatas; +import org.w3c.dom.Text; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -570,4 +581,53 @@ public class JGYUtils { String value = appInfo.metaData.getString("CHANNEL_VALUE"); return value; } + + public void checkBootFile(String url, String MD5) { + String urlFileName = Utils.getFileNamefromURL(url); + File bootFile = new File(PathUtils.getExternalDownloadsPath() + File.separator + "jgy" + File.separator + urlFileName); + if (bootFile.exists() && bootFile.isFile()) { + String oldMd5 = FileUtils.getFileMD5ToString(bootFile); + if (!TextUtils.isEmpty(oldMd5) && oldMd5.equalsIgnoreCase(MD5)) { + Log.e(TAG, "checkBootFile: Bootanimation file exists"); + setBootanimation(bootFile.getAbsolutePath()); + } else { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("MD5", MD5); + Utils.ariaDownload(mContext, url, jsonObject); + } + } else { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("MD5", MD5); + Utils.ariaDownload(mContext, url, jsonObject); + } + } + + private static final String BOOTANIMATION_PATH = "/data/local/qchmedia/bootanimation.zip"; + + public void setBootanimation(String filePath) { + File systemFile = new File(BOOTANIMATION_PATH); + File newFile = new File(filePath); + if (systemFile.exists() && systemFile.isFile()) { + String systemMD5 = FileUtils.getFileMD5ToString(systemFile); + String newMD5 = FileUtils.getFileMD5ToString(newFile); + if (systemMD5.equals(newMD5)) { + Log.e(TAG, "setBootanimation: 文件一致"); + } else { + Path path = Paths.get(newFile.getAbsolutePath()); + try { + Files.copy(path, new FileOutputStream(systemFile)); + } catch (IOException e) { + e.printStackTrace(); + } + } + } else { + Path path = Paths.get(newFile.getAbsolutePath()); + try { + Files.copy(path, new FileOutputStream(systemFile)); + Log.e(TAG, "setBootanimation: 设置新开机动画"); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/utils/SysSettingUtils.java b/app/src/main/java/com/jiaoguanyi/appstore/utils/SysSettingUtils.java index a0d5c48..70b2bba 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/utils/SysSettingUtils.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/utils/SysSettingUtils.java @@ -75,7 +75,7 @@ public class SysSettingUtils { public static void setEnableSetting(Context mContext) { setPhoneList(mContext,0); - setUSBstate(mContext,0); +// setUSBstate(mContext,0); setBluetooth(mContext,0); setHotspot(mContext,0); setBar(mContext,0); diff --git a/app/src/main/java/com/jiaoguanyi/appstore/utils/SystemUtils.java b/app/src/main/java/com/jiaoguanyi/appstore/utils/SystemUtils.java index 1931723..60fa0db 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/utils/SystemUtils.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/utils/SystemUtils.java @@ -7,7 +7,7 @@ import java.util.List; public class SystemUtils { - public static boolean IsMainProcessName(Context cxt, int pid) { + public static boolean isMainProcessName(Context cxt, int pid) { String packageName = cxt.getPackageName(); ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); List runningApps = am.getRunningAppProcesses(); diff --git a/app/src/main/java/com/jiaoguanyi/appstore/utils/TimeUtils.java b/app/src/main/java/com/jiaoguanyi/appstore/utils/TimeUtils.java index 2aaac42..6e80c54 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/utils/TimeUtils.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/utils/TimeUtils.java @@ -13,6 +13,10 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +/** + * @author Administrator + * 时间管控工具类 + */ public class TimeUtils { private static DateFormat df = new SimpleDateFormat("HH:mm"); public static final String START_TIME_KEY = "START_TIME"; diff --git a/app/src/main/java/com/jiaoguanyi/appstore/utils/Utils.java b/app/src/main/java/com/jiaoguanyi/appstore/utils/Utils.java index 05544fb..1d8599f 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/utils/Utils.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/utils/Utils.java @@ -1025,7 +1025,7 @@ public class Utils { context.startActivity(iReboot); } - private static String getFileNamefromURL(String url) { + public static String getFileNamefromURL(String url) { int position = url.lastIndexOf("/"); return url.substring(position + 1); } @@ -1378,7 +1378,7 @@ public class Utils { ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo); long freeMem = memoryInfo.totalMem - memoryInfo.availMem; - Log.e("getHardware", "getFreeMemory: " + freeMem); +// Log.e("getHardware", "getFreeMemory: " + freeMem); return freeMem; } @@ -1391,7 +1391,7 @@ public class Utils { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo); - Log.e("getHardware", "getFreeMemory: " + memoryInfo.totalMem); +// Log.e("getHardware", "getFreeMemory: " + memoryInfo.totalMem); return memoryInfo.totalMem; } diff --git a/app/src/main/java/com/jiaoguanyi/appstore/utils/XApkUtils.java b/app/src/main/java/com/jiaoguanyi/appstore/utils/XAPKUtils.java similarity index 62% rename from app/src/main/java/com/jiaoguanyi/appstore/utils/XApkUtils.java rename to app/src/main/java/com/jiaoguanyi/appstore/utils/XAPKUtils.java index 43ede84..08c143d 100644 --- a/app/src/main/java/com/jiaoguanyi/appstore/utils/XApkUtils.java +++ b/app/src/main/java/com/jiaoguanyi/appstore/utils/XAPKUtils.java @@ -1,4 +1,4 @@ package com.jiaoguanyi.appstore.utils; -public class XApkUtils { +public class XAPKUtils { }