From 124696a9dd9ecdb9320e786177cc528ea50ae837 Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Tue, 19 Mar 2024 09:30:51 +0800 Subject: [PATCH] =?UTF-8?q?1.4.0318=20=E4=BF=AE=E5=A4=8D=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=90=8E=E8=AE=BE=E7=BD=AE=E9=BB=98=E8=AE=A4=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E6=8E=A5=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=AE=A1?= =?UTF-8?q?=E6=8E=A7=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=93=E6=B3=A8=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E6=8E=A5=E7=AE=A1=E7=B3=BB=E7=BB=9F=E6=89=93?= =?UTF-8?q?=E5=BC=80app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 34 +- app/keystore/G11Userdebug.keystore | Bin 0 -> 2352 bytes .../aoleyun/sn/activity/SplashActivity.java | 7 - .../sn/activity/main/MainActivity.java | 10 + .../java/com/aoleyun/sn/bean/LessonApp.java | 79 ++ .../java/com/aoleyun/sn/bean/LessonJson.java | 64 ++ .../com/aoleyun/sn/bean/LessonSetting.java | 64 ++ .../java/com/aoleyun/sn/bean/SnSetting.java | 55 ++ .../com/aoleyun/sn/comm/CommonConfig.java | 7 +- .../com/aoleyun/sn/comm/PackageNames.java | 3 - .../sn/hook/AoleyunActivityController.java | 15 +- .../sn/network/NetInterfaceManager.java | 139 ++- .../com/aoleyun/sn/network/UrlAddress.java | 4 + .../sn/network/api/get/CloudLessonApi.java | 16 + .../sn/network/api/get/CloudLessonAppApi.java | 16 + .../java/com/aoleyun/sn/push/PushManager.java | 27 +- .../aoleyun/sn/receiver/NewAppReceiver.java | 56 +- .../com/aoleyun/sn/service/RemoteService.java | 6 +- .../aoleyun/sn/service/main/MainSContact.java | 3 + .../sn/service/main/MainSPresenter.java | 12 + .../aoleyun/sn/service/main/MainService.java | 28 +- .../java/com/aoleyun/sn/utils/ApkUtils.java | 827 +++++++++--------- .../java/com/aoleyun/sn/utils/JGYUtils.java | 117 ++- .../com/aoleyun/sn/utils/SysSettingUtils.java | 160 +++- .../java/com/aoleyun/sn/utils/TimeUtils.java | 40 + .../main/java/com/aoleyun/sn/utils/Utils.java | 1 + 26 files changed, 1299 insertions(+), 491 deletions(-) create mode 100644 app/keystore/G11Userdebug.keystore create mode 100644 app/src/main/java/com/aoleyun/sn/bean/LessonApp.java create mode 100644 app/src/main/java/com/aoleyun/sn/bean/LessonJson.java create mode 100644 app/src/main/java/com/aoleyun/sn/bean/LessonSetting.java create mode 100644 app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonApi.java create mode 100644 app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonAppApi.java diff --git a/app/build.gradle b/app/build.gradle index cf6f88d..c37a796 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { defaultConfig { applicationId "com.aoleyun.sn" - versionCode 107 - versionName "1.4.0202" + versionCode 114 + versionName "1.4.0318" //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. minSdkVersion 24 @@ -44,11 +44,6 @@ android { // 还可以添加 'armeabi' , 'x86', 'x86_64', 'mips', 'mips64' } - manifestPlaceholders = [ - XG_ACCESS_ID : "1500026372", - XG_ACCESS_KEY: "AR7A1L5M0LPH", - ] - buildConfigField "String", "ROOT_URL", '"https://led.aoleyun.cn/api/"' buildConfigField "String", "SCREEN_BASE_URL", '"https://led.aoleyun.cn:2018/"' buildConfigField "String", "SCREEN_URL", '"https://led.aoleyun.cn:2018/wm/is_online"' @@ -121,6 +116,15 @@ android { v2SigningEnabled true } + G11Userdebug { + storeFile file("keystore/G11Userdebug.keystore") + storePassword "123456" + keyAlias "G11Userdebug" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + G10PUserDebug { storeFile file("keystore/G10PUserDebug.jks") storePassword "123456" @@ -172,6 +176,8 @@ android { keyPassword "123456" v2SigningEnabled false } + + } // Disable release builds for now @@ -251,6 +257,20 @@ android { signingConfig signingConfigs.mtk12 } + G11Debug.initWith(debug) + G11Debug { + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.G11Userdebug + buildConfigField "String", "platform", '"MTKG11"' + } + + G11Release.initWith(release) + G11Release { + signingConfig signingConfigs.G11Userdebug + buildConfigField "String", "platform", '"MTKG11"' + } + G10PDebug.initWith(debug) G10PDebug { versionNameSuffix "-debug" diff --git a/app/keystore/G11Userdebug.keystore b/app/keystore/G11Userdebug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..d3be293bc6ef78f31894aaad7260709316409485 GIT binary patch literal 2352 zcmd6o`8U*k8^`B6W^6OoF_Sfn5W;s9WhrYC8EbaQ7L#3!HOnYtsmPus-IgrbcZ$Je zXKqR4jwy1JYVJZ2X*}HLd7g9s@caSK`JC&A>vg?9=kq!5bDisAGMEeq1Ohz>;O{_s z;c%fhJcB(v-9o(%;5|WUTUiJM4h2atCdkdoslW=r0C^}M0Kg$I66_=Twws-~Vp{|U z5k>nfpn%R@{d3@PgrG+AI@@A=#)IPdm5q_K`jGgv9@Ph86>;JkYy!#IIR;=rwx4oE zm)5j-Php8h{=*vfFtiM%f~k1D&VJ{-8B{CNfkh%Z{8&}jJU>nK3L-kj-n_-Bzsv2E z^cN>eX`23`Z{}vNscj_kZllHt`_1PZgS6DQQAtz%!|J-JE3%TBR_4Dh$2E;!DF!oE zZ%zmi}yEDZx3ddKbk&2uBGb49nSUnng8$N$D(pJlTcqd-> z#2dxgG10h0{^!{fN%cR=hE&M0R-V$#RkjB;&O~nPD0iPBPxeoxKkn^3anCDZRoSaS zt%+VSF%qU6FR%8{CO_)b(IjS$aunF^CC#f$NwfswYXW=`=Ojiyei`g62~XV%X{u&o z?YePXl*tW_q@Y!$AINXUd%so41P;AG@gR=H#$^=+l#jh&wfutQB3s=0YG_l`vzrmB zml&H%c&E0sG74au>E~_-R?l*F#<&Trhqg@xmu(Qbqiq5UT6gkj?3(&(G-;!5#==i{ zx>cr-z z+uKmxfA`!`ngw36;7-nLT=p2s-MfE;*Sk@kJAtz!$@==SH`6KU7TR_#PO zoX7|>dSCm7tSp$W#3R|2-4g7=n@zp+ROsqmx+qmQVsrMPQ0`-Na6xONDu{5z>WMHN zEW=Se#HSmes&{AWsC!XiTe2f($ZJd8C{?MP{Dqmt;>p3-vpFn8mzYn@*i|F4nYr@n zVq5q&k4n*eN*0rAaGh^)B|}zPJdCdVJ0oQIWI|(uk<4J_wP0DXP!tr4j}a8^T=^mA z|5u|QqEAVSv@F*OhT8ET6?7jTrczUN=&ga1MEsxZ;)2?x+79Z=M>~g+=_V!3%NVI8;(~yjcU8rchW2+8$;x6A6#x!3%DzUFZGct7^8HpMQa!s-L z?4=d!e$$%Ul<-QjZAeq*EB>iBJu^S;#G@0FCeuA0WyKbh;^E1*@OKSi?RY0?+}!^8 z8ib~qN!%QuCbAlTb!M=#?9v(sU&xfpMGx5Rji*x3eaH8j`8HRVPUl3{7YyT{S4F?WusC+@6V&CMil#8wCE^n2fXG6`lQEvX=B8L`MY7lV zuC;RMkQ5KUdDY0m*|xyr2K^MPCVcMiK?+F`Ae+QYl+M{$1?dzL!8GkRXMOmkq;)w> zm~NoLhz?!5t>&}(c09JHBN9XTK6p){{~21T2B3BiIdQamZm;a}k);=csqKOxFZy7S z8~bI-HCk$Nm=8IqmubeoGUM1E6cOv;I*r2PZES69^$JD6tzUjKF67We%_dlht_k+`iN)OTNq9BPDa zWk!8FC6F@zUO2CFQgFHyBY*R&&hg9$Ll+1~LHGyEAw-(D<9V@wNf64n$x@*S2E7{~t#ZTFy?gn$( ziw6EZAK`XNs-QXq!m_3=2~gDHBDup`;@JPF1Gf3N=#HYA&oE5U%^>W||Cc@8z4NOn_C z4}z<;rwi8XA4e|6*au4tW zC5~{ZoCI;;NgPh~;5Z2KsDP>0WkmzC>nK?m*F~W$0NF#Tj25Tsq|=!xK1&Uh6WD4ui7=~)E>hlQ-yB-B z#3di}?d6eZYQkx~Wo>+|c!j}zf2*cisaUnB-dlWn24ro0K(xU!A68bgEQ4|Sk>cw+ zZ*MP_qJHaRHLa+P<;@Gqht`a-Wa$u}p}b~G zlu5t(ThWn8-nl}(i)a(;?{++z_GFJ&1+^KUUSCKs�OVUb8bBUR#^F(f*UZafGmi zD6RMRYyq>AQ!?G2KzEc}&2rMq3tE5?_apTf&z5pI`YrfonNRLdDXk+mijG%rMX|Yl ZFs1lSKtvREg5h=+*ZB52%Eyy>{{`<7^o9Tc literal 0 HcmV?d00001 diff --git a/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java b/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java index 002c298..14eb43b 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java @@ -179,13 +179,6 @@ public class SplashActivity extends AppCompatActivity { // ActivityManager mAm = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); // mAm.killBackgroundProcesses("com.android.documentsui"); Log.e(TAG, "debugTest: SPUtils all " + new Gson().toJson(SPUtils.getAll(this))); - try { - PackageManager packageManager = getPackageManager(); - packageManager.setApplicationEnabledSetting(PackageNames.OLD_DEVICE_INFO, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - packageManager.setApplicationEnabledSetting(PackageNames.OLD_APPSTORE, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } catch (Exception e) { - Log.e(TAG, "debugTest: " + e.getMessage()); - } // Utils.getPublicIP(this); Utils.obtainWifiInfo(this); diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java index e04f609..de59f39 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java @@ -47,6 +47,7 @@ import com.aoleyun.sn.utils.Utils; import com.blankj.utilcode.util.NetworkUtils; import com.bumptech.glide.Glide; import com.google.gson.JsonObject; +import com.tencent.mmkv.MMKV; import java.util.concurrent.TimeUnit; @@ -67,6 +68,8 @@ import static android.os.BatteryManager.EXTRA_VOLTAGE; public class MainActivity extends BaseActivity implements MainAContact.MainView, NetworkUtils.OnNetworkStatusChangedListener { private static final String TAG = MainActivity.class.getSimpleName(); + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); + public static final String UPDATE_LOCKED_STATUS = "UPDATE_LOCKED_STATUS"; public static final String REFRESHACTION = BuildConfig.APPLICATION_ID + ".REFRESH"; @@ -172,6 +175,13 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView, public void initView() { ButterKnife.bind(this); + if (BuildConfig.DEBUG) { + String defaultDesktop = mMMKV.decodeString(CommonConfig.DEFAULT_DESKTOP_PACKAGE_NAME, ""); + Log.e(TAG, "initView: defaultDesktop = " + defaultDesktop); + String defaultLauncher = mMMKV.decodeString(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, ""); + Log.e(TAG, "initView: defaultLauncher = " + defaultLauncher); + } + mMainAPresenter = new MainAPresenter(this); mMainAPresenter.attachView(this); mMainAPresenter.setLifecycle(lifecycleSubject); diff --git a/app/src/main/java/com/aoleyun/sn/bean/LessonApp.java b/app/src/main/java/com/aoleyun/sn/bean/LessonApp.java new file mode 100644 index 0000000..a308add --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/LessonApp.java @@ -0,0 +1,79 @@ +package com.aoleyun.sn.bean; + +import androidx.annotation.NonNull; + +import com.google.gson.Gson; +import com.google.gson.JsonParser; + +import java.io.Serializable; +import java.util.List; + +public class LessonApp implements Serializable { + private static final long serialVersionUID = -7239207868023265592L; + + int id; + List app; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public List getApp() { + return app; + } + + public void setApp(List app) { + this.app = app; + } + + public class App implements Serializable { + private static final long serialVersionUID = -3442928771696560097L; + + int id; + String app_package; + String app_md5; + String app_url; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getApp_package() { + return app_package; + } + + public void setApp_package(String app_package) { + this.app_package = app_package; + } + + public String getApp_md5() { + return app_md5; + } + + public void setApp_md5(String app_md5) { + this.app_md5 = app_md5; + } + + public String getApp_url() { + return app_url; + } + + public void setApp_url(String app_url) { + this.app_url = app_url; + } + } + + @NonNull + @Override + public String toString() { + return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/LessonJson.java b/app/src/main/java/com/aoleyun/sn/bean/LessonJson.java new file mode 100644 index 0000000..8f87732 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/LessonJson.java @@ -0,0 +1,64 @@ +package com.aoleyun.sn.bean; + +import androidx.annotation.NonNull; + +import com.google.gson.Gson; +import com.google.gson.JsonParser; + +import java.io.Serializable; + +public class LessonJson implements Serializable { + private static final long serialVersionUID = 6825242822560631014L; + + int is_lesson; + String start_time; + String end_time; + int is_monitor; + String pkgs; + + public int getIs_lesson() { + return is_lesson; + } + + public void setIs_lesson(int is_lesson) { + this.is_lesson = is_lesson; + } + + public String getStart_time() { + return start_time; + } + + public void setStart_time(String start_time) { + this.start_time = start_time; + } + + public String getEnd_time() { + return end_time; + } + + public void setEnd_time(String end_time) { + this.end_time = end_time; + } + + public int getIs_monitor() { + return is_monitor; + } + + public void setIs_monitor(int is_monitor) { + this.is_monitor = is_monitor; + } + + public String getPkgs() { + return pkgs; + } + + public void setPkgs(String pkgs) { + this.pkgs = pkgs; + } + + @NonNull + @Override + public String toString() { + return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/LessonSetting.java b/app/src/main/java/com/aoleyun/sn/bean/LessonSetting.java new file mode 100644 index 0000000..0dc3d28 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/LessonSetting.java @@ -0,0 +1,64 @@ +package com.aoleyun.sn.bean; + +import androidx.annotation.NonNull; + +import com.google.gson.Gson; +import com.google.gson.JsonParser; + +import java.io.Serializable; + +public class LessonSetting implements Serializable { + private static final long serialVersionUID = -6129161360078961573L; + + int id; + int is_lesson;//是否开启网课模式 0否1是 + String start_time;//可用时段 开始时间 + String end_time;//可用时段 结束时间 + int is_monitor;//是否开启网课监控 0否1是 + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getIs_lesson() { + return is_lesson; + } + + public void setIs_lesson(int is_lesson) { + this.is_lesson = is_lesson; + } + + public String getStart_time() { + return start_time; + } + + public void setStart_time(String start_time) { + this.start_time = start_time; + } + + public String getEnd_time() { + return end_time; + } + + public void setEnd_time(String end_time) { + this.end_time = end_time; + } + + public int getIs_monitor() { + return is_monitor; + } + + public void setIs_monitor(int is_monitor) { + this.is_monitor = is_monitor; + } + + @NonNull + @Override + public String toString() { + return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/SnSetting.java b/app/src/main/java/com/aoleyun/sn/bean/SnSetting.java index 16fb22a..463aa7d 100644 --- a/app/src/main/java/com/aoleyun/sn/bean/SnSetting.java +++ b/app/src/main/java/com/aoleyun/sn/bean/SnSetting.java @@ -11,6 +11,13 @@ public class SnSetting implements Serializable { String timecontrol_end; int is_storeinstall; int is_usb; + int is_bluetooth_file; + int is_developer; + int is_restore; + int is_topbar; + int is_bottombar; + int is_memory_card; + public int getId() { return id; @@ -59,4 +66,52 @@ public class SnSetting implements Serializable { public void setIs_usb(int is_usb) { this.is_usb = is_usb; } + + public int getIs_bluetooth_file() { + return is_bluetooth_file; + } + + public void setIs_bluetooth_file(int is_bluetooth_file) { + this.is_bluetooth_file = is_bluetooth_file; + } + + public int getIs_developer() { + return is_developer; + } + + public void setIs_developer(int is_developer) { + this.is_developer = is_developer; + } + + public int getIs_restore() { + return is_restore; + } + + public void setIs_restore(int is_restore) { + this.is_restore = is_restore; + } + + public int getIs_topbar() { + return is_topbar; + } + + public void setIs_topbar(int is_topbar) { + this.is_topbar = is_topbar; + } + + public int getIs_bottombar() { + return is_bottombar; + } + + public void setIs_bottombar(int is_bottombar) { + this.is_bottombar = is_bottombar; + } + + public int getIs_memory_card() { + return is_memory_card; + } + + public void setIs_memory_card(int is_memory_card) { + this.is_memory_card = is_memory_card; + } } diff --git a/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java b/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java index f1e2f5e..617ea8d 100644 --- a/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java +++ b/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java @@ -65,9 +65,14 @@ public class CommonConfig { public final static String GET_DEVICES_TAG_LASTTIME = "Aoleyun_devices_tag_last_time"; /*专注模式刷新*/ public static final String FOCUS_MODE_REFRESH_KEY = "AOLEYUN_FOCUS_MODE_REFRESH"; + /*专注模式设置*/ + public static final String CLOUD_LESSON_SETTINGS_KEY = "cloud_lesson_settings_key"; /*应用市场允许安装*/ public static final String AOLEYUN_APPSTORE_INSTALL = "AOLEYUN_APPSTORE_INSTALL_KEY"; - + /*默认桌面 包括简易桌面和学习桌面*/ + public static final String DEFAULT_DESKTOP_PACKAGE_NAME = "aoleyun_default_desktop_key"; + /*默认应用桌面 单独设置*/ + public static final String DEFAULT_LAUNCHER_PACKAGE_NAME = "aoleyun_default_launcher_key"; /** * 管控系统指令 diff --git a/app/src/main/java/com/aoleyun/sn/comm/PackageNames.java b/app/src/main/java/com/aoleyun/sn/comm/PackageNames.java index 1122b78..e7c8b52 100644 --- a/app/src/main/java/com/aoleyun/sn/comm/PackageNames.java +++ b/app/src/main/java/com/aoleyun/sn/comm/PackageNames.java @@ -8,9 +8,6 @@ package com.aoleyun.sn.comm; * version: 1.0 */ public class PackageNames { - //旧版的应用市场和设备信息包名 - public static final String OLD_DEVICE_INFO = "com.jiaoguanyi.appstore"; - public static final String OLD_APPSTORE = "com.jiaoguanyi.store"; //应用市场和设备信息包名 public static final String DEVICE_INFO = "com.aoleyun.sn"; public static final String APPSTORE = "com.aoleyun.appstore"; diff --git a/app/src/main/java/com/aoleyun/sn/hook/AoleyunActivityController.java b/app/src/main/java/com/aoleyun/sn/hook/AoleyunActivityController.java index 0d3ad04..2091873 100644 --- a/app/src/main/java/com/aoleyun/sn/hook/AoleyunActivityController.java +++ b/app/src/main/java/com/aoleyun/sn/hook/AoleyunActivityController.java @@ -15,10 +15,17 @@ public class AoleyunActivityController extends IActivityController.Stub { @Override public boolean activityStarting(Intent intent, String pkg) { Log.e(TAG, "activityStarting: " + pkg + ", intent= " + intent); - //retrun false;//false 则不会启动,直接返回。 - boolean status = JGYUtils.getInstance().isForbid(pkg); - Log.e(TAG, "activityStarting: " + pkg + "start = " + status); - return status; + //false 则不会启动,直接返回。 + if (JGYUtils.getInstance().isCloudLessonMod(pkg)) { + if (JGYUtils.getInstance().isForbid(pkg)) { + return true; + } else { + return false; + } + } else { + ToastUtil.show("专注模式只允许使用指定应用"); + return false; + } } @Override diff --git a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java index 02e3c5a..d3f1593 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -39,6 +39,9 @@ import com.aoleyun.sn.bean.DefaultApp; import com.aoleyun.sn.bean.DeveloperBean; import com.aoleyun.sn.bean.EBagCode; import com.aoleyun.sn.bean.ForceDownloadData; +import com.aoleyun.sn.bean.LessonApp; +import com.aoleyun.sn.bean.LessonJson; +import com.aoleyun.sn.bean.LessonSetting; import com.aoleyun.sn.bean.LogoImg; import com.aoleyun.sn.bean.NetAndLaunchBean; import com.aoleyun.sn.bean.PoweroffBean; @@ -61,6 +64,8 @@ import com.aoleyun.sn.manager.ConnectMode; import com.aoleyun.sn.network.api.GetWhoisApi; import com.aoleyun.sn.network.api.aolelearn.ExclusiveAdminAppApi; import com.aoleyun.sn.network.api.get.CheckTestUpdateApi; +import com.aoleyun.sn.network.api.get.CloudLessonApi; +import com.aoleyun.sn.network.api.get.CloudLessonAppApi; import com.aoleyun.sn.network.api.get.DefaultAppApi; import com.aoleyun.sn.network.api.get.DesktopsDiyUpdateApi; import com.aoleyun.sn.network.api.get.GetAdminAppApi; @@ -123,6 +128,7 @@ import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.MD5Util; import com.aoleyun.sn.utils.NetworkUtils; import com.aoleyun.sn.utils.SPUtils; +import com.aoleyun.sn.utils.SysSettingUtils; import com.aoleyun.sn.utils.TimeUtils; import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.URLUtils; @@ -697,6 +703,19 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } + public Observable> getCloudLessonObservable() { + return mRetrofit.create(CloudLessonApi.class) + .getCloudLessonSetting(Utils.getSerial(mContext)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + + public Observable> getCloudLessonAppObservable() { + return mRetrofit.create(CloudLessonAppApi.class) + .getCloudLessonApp(Utils.getSerial(mContext)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } /* @@ -1275,9 +1294,11 @@ public class NetInterfaceManager { JsonObject data = GsonUtils.getJsonObject(jsonString); cacheHelper.put(UrlAddress.GET_DESKTOP, jsonString); JGYUtils.getInstance().installDesktop(data); + mMMKV.encode(CommonConfig.DEFAULT_DESKTOP_PACKAGE_NAME, desktopInfo.getApp_package()); setDefaultDesktop(desktopInfo.getApp_package()); } else { Log.e("getDefaultDesktop", "onNext: " + "删除定制桌面"); + mMMKV.encode(CommonConfig.DEFAULT_DESKTOP_PACKAGE_NAME, ""); cacheHelper.put(UrlAddress.GET_DESKTOP, ""); // String whiteList = Settings.System.getString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST); for (String s : ApkUtils.desktopAPP) { @@ -1296,6 +1317,7 @@ public class NetInterfaceManager { } catch (Exception e) { Log.e("getDefaultDesktop", "onNext: " + e.getMessage()); } + mMMKV.encode(CommonConfig.DEFAULT_DESKTOP_PACKAGE_NAME, "com.aoleyunos.dop3"); setDefaultDesktop("com.aoleyunos.dop3"); } } @@ -2014,6 +2036,7 @@ public class NetInterfaceManager { }.getType(); DefaultApp defaultApp = gson.fromJson(jsonString, type); if (defaultApp != null) { + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, defaultApp.getDefault_launcher()); setDefaultDesktop(defaultApp.getDefault_launcher()); } callback.onComplete(); @@ -2073,9 +2096,12 @@ public class NetInterfaceManager { } JGYUtils.getInstance().setDefaultBrowser(default_IME); String default_launcher = defaultApp.getDefault_launcher(); + if (!TextUtils.isEmpty(default_launcher)) { + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, default_launcher); JGYUtils.getInstance().setDefaultDesktop(default_launcher); } else { + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, "com.aoleyun.os"); JGYUtils.getInstance().setDefaultDesktop("com.aoleyun.os"); Log.e(TAG, "setDefaultApp: default_launcher is empty"); } @@ -2093,12 +2119,19 @@ public class NetInterfaceManager { return id; } + /** + * 设置默认简易桌面或学习桌面 + * + * @param defaultApp + */ private void setDefaultDesktop(String defaultApp) { if (!TextUtils.isEmpty(defaultApp)) { JGYUtils.getInstance().setDefaultDesktop(defaultApp); - SPUtils.put(mContext, "default_launcher", defaultApp); +// SPUtils.put(mContext, "default_launcher", defaultApp); } else { - String default_launcher = (String) SPUtils.get(mContext, "default_launcher", ""); + //如果默认桌面不为空则设置为默认桌面 + String default_launcher = mMMKV.decodeString(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, ""); +// String default_launcher = (String) SPUtils.get(mContext, "default_launcher", ""); Log.e("getDefaultApp", "onNext: " + default_launcher); if (TextUtils.isEmpty(default_launcher)) { JGYUtils.getInstance().setDefaultDesktop(); @@ -2222,6 +2255,7 @@ public class NetInterfaceManager { if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.TeclastP20sPlatform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform ) { JGYUtils.getInstance().showApp(PackageNames.YIXUEPAI_DESKTOP); JGYUtils.getInstance().setYxpDefaultDesktop(); @@ -2234,6 +2268,7 @@ public class NetInterfaceManager { if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.TeclastP20sPlatform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform ) { JGYUtils.getInstance().hideApp(PackageNames.YIXUEPAI_DESKTOP); JGYUtils.getInstance().setDefaultDesktop(); @@ -2458,6 +2493,8 @@ public class NetInterfaceManager { tagSets.add(JGYUtils.C2Tag); } else if (platform == JGYUtils.YXPD1Platform) { tagSets.add(JGYUtils.YXPD1TAG); + } else if (platform == JGYUtils.G11Platform) { + tagSets.add(JGYUtils.G11TAG); } }); Log.e(TAG, "clearAndAppendTags: " + tagSets); @@ -4092,30 +4129,9 @@ public class NetInterfaceManager { Log.e("getSnSetting", "onNext: " + snSettingBaseResponse); if (snSettingBaseResponse.code == OK) { SnSetting snSetting = snSettingBaseResponse.data; - int is_timecontrol = snSetting.getIs_timecontrol(); - int is_storeinstall = snSetting.getIs_storeinstall(); - Settings.Global.putInt(mContext.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, is_storeinstall); - if (is_timecontrol == 0) { - TimeUtils.setEmpty(mContext); - TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(mContext); - if (null != c) { - Log.e("getTimeControl", c.toString()); - } - } else { - String start_time = snSetting.getTimecontrol_start(); - String end_time = snSetting.getTimecontrol_end(); - TimeUtils.ContralTime c = TimeUtils.String2ContralTime(mContext, start_time + "-" + end_time); - if (null != c) { - Log.e("getTimeControl", "OK:" + c.toString()); - } - } + SysSettingUtils.setSnSetting(mContext, snSetting); } else { - Settings.Global.putInt(mContext.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, 1); - TimeUtils.setEmpty(mContext); - TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(mContext); - if (null != c) { - Log.e("getTimeControl", c.toString()); - } + SysSettingUtils.setSnSetting(mContext, null); } } @@ -4138,5 +4154,78 @@ public class NetInterfaceManager { }; } + public void getCloudLessonSettings(BehaviorSubject lifecycle, onCompleteCallback callback) { + Observable.zip(getCloudLessonObservable(), getCloudLessonAppObservable(), this::getLessonJson) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getCloudLessonSettingsObserver(callback)); + } + public void getCloudLessonSettings(onCompleteCallback callback) { + Observable.zip(getCloudLessonObservable(), getCloudLessonAppObservable(), this::getLessonJson) + .subscribe(getCloudLessonSettingsObserver(callback)); + } + + public void getCloudLessonSettings() { + Observable.zip(getCloudLessonObservable(), getCloudLessonAppObservable(), this::getLessonJson) + .subscribe(getCloudLessonSettingsObserver(null)); + } + + private LessonJson getLessonJson(BaseResponse lessonSettingBaseResponse, BaseResponse lessonAppBaseResponse) { + LessonJson lessonJson = new LessonJson(); + if (lessonSettingBaseResponse.code == 200) { + LessonSetting lessonSetting = lessonSettingBaseResponse.data; + lessonJson.setIs_lesson(lessonSetting.getIs_lesson()); + lessonJson.setStart_time(lessonSetting.getStart_time()); + lessonJson.setEnd_time(lessonSetting.getEnd_time()); + lessonJson.setIs_monitor(lessonSetting.getIs_monitor()); + } else { + lessonJson.setIs_lesson(0); + lessonJson.setStart_time("00:00"); + lessonJson.setEnd_time("00:00"); + lessonJson.setIs_monitor(0); + } + if (lessonAppBaseResponse.code == 200) { + List app = lessonAppBaseResponse.data.getApp(); + if (app != null || app.size() != 0) { + List appList = app.stream().map(LessonApp.App::getApp_package).collect(Collectors.toList()); + String pkgs = String.join(",", appList); + lessonJson.setPkgs(pkgs); + } else { + lessonJson.setPkgs(""); + } + } else { + lessonJson.setPkgs(""); + } + return lessonJson; + } + + public Observer getCloudLessonSettingsObserver(onCompleteCallback callback) { + return new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getCloudLessonSettings", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull LessonJson lessonJson) { + Log.e("getCloudLessonSettings", "onNext: " + lessonJson); + mMMKV.encode(CommonConfig.CLOUD_LESSON_SETTINGS_KEY, GsonUtils.toJSONString(lessonJson)); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getCloudLessonSettings", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getCloudLessonSettings", "onComplete: "); + JGYUtils.getInstance().refresh(); + if (callback != null) { + callback.onComplete(); + } + } + }; + } } diff --git a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java index bc4d719..a9b284a 100644 --- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java +++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java @@ -20,6 +20,9 @@ public class UrlAddress { /*绑定设备*/ public static final String SN_CONFIRM_BIND = "And/sn/snConfirmBind"; + /*网课模式*/ + public final static String GET_CLOUD_LESSON = "And/control/getCloudLessonSetting"; + public final static String GET_CLOUD_LESSON_APP = "And/control/getCloudLessonApp"; /*获取批次*/ @Deprecated @@ -154,6 +157,7 @@ public class UrlAddress { /*上传应用图标*/ public static final String UPLOAD_APP_IMG = "And/collectData/uploadAppImg"; + /*通过ip获取信息*/ public static final String PCONLINE_WHOIS = "http://whois.pconline.com.cn/"; public static final String WHOIS = "ipJson.jsp"; diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonApi.java new file mode 100644 index 0000000..6595003 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonApi.java @@ -0,0 +1,16 @@ +package com.aoleyun.sn.network.api.get; + +import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.LessonSetting; +import com.aoleyun.sn.network.UrlAddress; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface CloudLessonApi { + @GET(UrlAddress.GET_CLOUD_LESSON) + Observable> getCloudLessonSetting( + @Query("sn") String sn + ); +} diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonAppApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonAppApi.java new file mode 100644 index 0000000..62aaa47 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/CloudLessonAppApi.java @@ -0,0 +1,16 @@ +package com.aoleyun.sn.network.api.get; + +import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.LessonApp; +import com.aoleyun.sn.network.UrlAddress; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.GET; +import retrofit2.http.Query; + +public interface CloudLessonAppApi { + @GET(UrlAddress.GET_CLOUD_LESSON_APP) + Observable> getCloudLessonApp( + @Query("sn") String sn + ); +} diff --git a/app/src/main/java/com/aoleyun/sn/push/PushManager.java b/app/src/main/java/com/aoleyun/sn/push/PushManager.java index eba280d..4d1b475 100644 --- a/app/src/main/java/com/aoleyun/sn/push/PushManager.java +++ b/app/src/main/java/com/aoleyun/sn/push/PushManager.java @@ -622,13 +622,13 @@ public class PushManager { }); camera2BackgroundUtil.startTakePicture(mContext.getExternalCacheDir().getAbsolutePath() + File.separator + TimeUtils.getPhotoDate() + ".jpg"); break; + case FOCUS_MODE: + refreshFocusMode(); + break; case TIME_CONTROL2: case USB_CONTROL: NetInterfaceManager.getInstance().getSnSetting(); break; - case FOCUS_MODE: - refreshFocusMode(); - break; case INSTALL_CONTROL: case BLUETOOTH_CONTROL: case DEVELOPER_CONTROL: @@ -636,7 +636,8 @@ public class PushManager { case SETTING_STATUSBAR: case SETTING_NAVIGATION: case SETTING_TF_CARD: - NetInterfaceManager.getInstance().setSystemSetting(); +// NetInterfaceManager.getInstance().setSystemSetting(); + NetInterfaceManager.getInstance().getSnSetting(); break; case BIND_DEVICE: bindService(extras); @@ -646,11 +647,13 @@ public class PushManager { } private void refreshFocusMode() { - Intent intent = new Intent(); +// Intent intent = new Intent(); // ComponentName componentName = new ComponentName("com.aoleyunos.dop6", "com.aoleyunos.dop6.service.main.MainService"); // intent.setComponent(componentName); - intent.setAction(CommonConfig.FOCUS_MODE_REFRESH_KEY); - mContext.sendBroadcast(intent); +// intent.setAction(CommonConfig.FOCUS_MODE_REFRESH_KEY); +// mContext.sendBroadcast(intent); + JGYUtils.getInstance().gotoLauncher(); + NetInterfaceManager.getInstance().getCloudLessonSettings(); } private void deleteApp(String extras) { @@ -1088,15 +1091,19 @@ public class PushManager { JsonElement launcherElement = jsonObject.get("default_launcher"); if (launcherElement.isJsonNull()) { JGYUtils.getInstance().setDefaultDesktop(""); - SPUtils.put(mContext, "default_launcher", ""); + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, ""); +// SPUtils.put(mContext, "default_launcher", ""); } else { String default_launcher = launcherElement.getAsString(); if (TextUtils.isEmpty(default_launcher)) { JGYUtils.getInstance().setDefaultDesktop(""); - SPUtils.put(mContext, "default_launcher", ""); + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, ""); + +// SPUtils.put(mContext, "default_launcher", ""); } else { JGYUtils.getInstance().setDefaultDesktop(default_launcher); - SPUtils.put(mContext, "default_launcher", default_launcher); + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, default_launcher); +// SPUtils.put(mContext, "default_launcher", default_launcher); } } } diff --git a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java index 6d6bbbe..bf8d833 100644 --- a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java @@ -26,11 +26,14 @@ public class NewAppReceiver extends BroadcastReceiver { private static final String TAG = NewAppReceiver.class.getSimpleName(); private static NewAppListener newAppListener; + private static LauncherListener launcherListener; + @SuppressLint("StaticFieldLeak") private static Context mContext; static { sendAppInfo(); + setLauncher(); } @Override @@ -62,7 +65,6 @@ public class NewAppReceiver extends BroadcastReceiver { break; } Log.e(TAG, "sendAppInfo: " + state + packageName); - JGYUtils.getInstance().checkDefaultDesktop(packageName); NetInterfaceManager.getInstance().checkUpdate(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (!PackageNames.APPSTORE.equals(packageName) || !PackageNames.DEVICE_INFO.equals(packageName)) { @@ -73,6 +75,7 @@ public class NewAppReceiver extends BroadcastReceiver { //启动教官壹 } newAppListener.setNewAppListener(packageName); + launcherListener.setDefaultLauncher(packageName); } private void checkDefaultDesktop(String pkg) { @@ -94,12 +97,12 @@ public class NewAppReceiver extends BroadcastReceiver { .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { - + Log.e("sendAppInfo", "onSubscribe: "); } @Override public void onNext(@NonNull String s) { - Log.e(TAG, "sendAppInfo: onNext: " + s); + Log.e("sendAppInfo", "onNext: " + s); JGYUtils.getInstance().checkForceDownload(); JGYUtils.getInstance().updateNetworkWhiteList(); NetInterfaceManager.getInstance().getAppLimit(); @@ -110,21 +113,58 @@ public class NewAppReceiver extends BroadcastReceiver { } }); - String oldDesktop = (String) SPUtils.get(mContext, "default_launcher", ""); - if (s.equals(oldDesktop)) { - ApkUtils.openPackage(mContext, s); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("sendAppInfo", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("sendAppInfo", "onComplete: "); + } + }); + } + + public interface LauncherListener { + void setDefaultLauncher(String packageName); + } + + private static void setLauncher() { + Observable.create((ObservableEmitter emitter) -> { + launcherListener = emitter::onNext; + }) + .throttleFirst(10, TimeUnit.SECONDS) + //这句很关键,这是RxJava中的操作符,在规定时间内观察者不在接收被观察者发送的事件 + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("setLauncher", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull String pkg) { + Log.e("setLauncher", "onNext: " + pkg); + JGYUtils.getInstance().checkDefaultDesktop(pkg); + String oldDesktop = JGYUtils.getInstance().getDefaultDesktop(); +// String oldDesktop = (String) SPUtils.get(mContext, "default_launcher", ""); + Log.e("setLauncher", "onNext: oldDesktop = " + oldDesktop); + if (pkg.equals(oldDesktop)) { + ApkUtils.openPackage(mContext, pkg); } } @Override public void onError(@NonNull Throwable e) { - + Log.e("setLauncher", "onError: " + e.getMessage()); } @Override public void onComplete() { - Log.e(TAG, "onComplete: "); + Log.e("setLauncher", "onComplete: "); } }); } + } diff --git a/app/src/main/java/com/aoleyun/sn/service/RemoteService.java b/app/src/main/java/com/aoleyun/sn/service/RemoteService.java index e67f080..1d0a600 100644 --- a/app/src/main/java/com/aoleyun/sn/service/RemoteService.java +++ b/app/src/main/java/com/aoleyun/sn/service/RemoteService.java @@ -16,6 +16,7 @@ import com.aoleyun.sn.utils.ForegroundAppUtil; import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.Utils; +import com.tencent.mmkv.MMKV; import java.util.ArrayList; import java.util.Arrays; @@ -24,6 +25,8 @@ import java.util.List; public class RemoteService extends Service { private String TAG = RemoteService.class.getSimpleName(); + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); + public RemoteService() { } @@ -77,7 +80,8 @@ public class RemoteService extends Service { @Override public void setDefaultDesktop(String pkg) throws RemoteException { Log.e(TAG, "setDefaultDesktop: " + "pkg = " + pkg); - SPUtils.put(RemoteService.this, "default_launcher", pkg); +// SPUtils.put(RemoteService.this, "default_launcher", pkg); + mMMKV.encode(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, pkg); JGYUtils.getInstance().setDefaultDesktop(pkg); if (PackageNames.DESKTOP.equals(pkg)) { // JGYUtils.getInstance().killPackage(PackageNames.DESKTOP); diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java index 35bdcf3..b285897 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java @@ -81,6 +81,8 @@ public class MainSContact { /*获取时间管控*/ void getSnTimeControl(); void getSnSetting(); + /*获取网课模式*/ + void getCloudLessonSettings(); /*获取电子书包激活码*/ void getEbagCode(); /*获取学习应用*/ @@ -158,6 +160,7 @@ public class MainSContact { /*获取时间管控*/ void getSnTimeControlFinish(); void getSnSettingFinish(); + void setCloudLessonSettings(); /*获取电子书包激活码*/ void getEbagCodeFinish(boolean activation); /*获取学习应用*/ diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java index ea1163f..10cd4ce 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java @@ -552,6 +552,18 @@ public class MainSPresenter implements MainSContact.Presenter { }); } + @Override + public void getCloudLessonSettings() { + NetInterfaceManager.getInstance().getCloudLessonSettings(lifecycle, new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + if (mView != null) { + mView.setCloudLessonSettings(); + } + } + }); + } + @Override public void getEbagCode() { NetInterfaceManager.getInstance() diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java index 2a3e5a3..51c33ac 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java @@ -1,7 +1,9 @@ package com.aoleyun.sn.service.main; import android.annotation.SuppressLint; +import android.app.ActivityManagerNative; import android.app.AlarmManager; +import android.app.IActivityManager; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.Service; @@ -21,6 +23,7 @@ import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.IBinder; +import android.os.RemoteException; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; @@ -45,6 +48,7 @@ import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; import com.aoleyun.sn.comm.PackageNames; import com.aoleyun.sn.gson.GsonUtils; +import com.aoleyun.sn.hook.AoleyunActivityController; import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.rlog.LogDBManager; import com.aoleyun.sn.utils.ApkUtils; @@ -375,6 +379,10 @@ public class MainService extends Service implements MainSContact.MainView, Netwo JGYUtils.getInstance().setTongyiAppTop(); } + String launcherPkg = JGYUtils.getInstance().getDefaultDesktop(); + Log.e(TAG, "onCreate: " + launcherPkg); + JGYUtils.getInstance().checkDefaultDesktop(launcherPkg); + TimeTask task = new TimeTask(); task.execute("ntp.aliyun.com"); mPresenter.getLockedState(); @@ -467,13 +475,13 @@ public class MainService extends Service implements MainSContact.MainView, Netwo // createNotificationChannel(); // aliyunPushInit(); -// IActivityManager activityManager = ActivityManagerNative.getDefault(); -// try { -// activityManager.setActivityController(new AoleyunActivityController(), true); -// } catch (RemoteException e) { -// Log.e(TAG, "setActivityController: " + e.getMessage()); -// e.printStackTrace(); -// } + IActivityManager activityManager = ActivityManagerNative.getDefault(); + try { + activityManager.setActivityController(new AoleyunActivityController(), false); + } catch (RemoteException e) { + Log.e(TAG, "setActivityController: " + e.getMessage()); + e.printStackTrace(); + } } @Override @@ -1041,6 +1049,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo Log.e(TAG, "setTagsFinish: " + "not set tag"); // mPresenter.getStudesInfo(true); mPresenter.checkAoleyunUpdate(); +// SysSettingUtils.setEnableSetting(this); } else { mPresenter.getFirstConnect(); mPresenter.getStudesInfo(); @@ -1223,6 +1232,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void getSnSettingFinish() { + mPresenter.getCloudLessonSettings(); + } + + @Override + public void setCloudLessonSettings() { mPresenter.getEbagCode(); } diff --git a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java index 53ce76d..e3bf918 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java @@ -61,6 +61,432 @@ import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.schedulers.Schedulers; public class ApkUtils { + public static final Set aoleyunAPP = new HashSet() {{ + this.add(BuildConfig.APPLICATION_ID); + this.add("com.aoleyun.appstore"); + this.add("com.aoleyun.sn"); + this.add("com.aoleyun.info"); + this.add("com.aoleyun.os"); + this.add("com.aoleyun.browser"); + this.add("com.uiui.filecloud"); + this.add("com.gl.dwlauncher"); + this.add("com.qunyu.dividedroad"); + this.add("com.ygyb.yischool"); + this.add("com.yxxmk.uiui"); + this.add("com.uiui.floatwindow"); + this.add("com.uiuipad.find"); + this.add("com.uiuipad.appstore"); + this.add("com.uiuipad.os"); + this.add("com.uiuipad.zyinfo"); + + this.add("com.yixuepai.os"); + this.add("com.tongyi.aistudent"); + }}; + + /** + * 桌面app + */ + public static final Set desktopAPP = new HashSet() {{ + this.add("com.aoleyunos.dop1"); + this.add("com.aoleyunos.dop2"); + this.add("com.aoleyunos.dop3"); + this.add("com.aoleyunos.dop4"); + this.add("com.aoleyunos.dop5"); + this.add("com.aoleyunos.dop6"); + this.add("com.aoleyunos.dop7"); + this.add("com.aoleyunos.dop8"); + this.add("com.aoleyunos.dop9"); + this.add("com.aoleyunos.dop10"); +// this.add("com.uiuios.jgy1"); +// this.add("com.uiuios.jgy2"); +// this.add("com.android.uiuios"); +// this.add("com.shoufei.aole"); + }}; + + /** + * 出厂自带的app + */ + public static final Set factoryapp = new HashSet() {{ + this.add("com.android.fmradio"); + this.add("com.mediatek.gba"); + this.add("com.mediatek.ims"); + this.add("com.mediatek.ppl"); + this.add("com.android.cts.priv.ctsshim"); + this.add("com.android.internal.display.cutout.emulation.corner"); + this.add("com.android.internal.display.cutout.emulation.double"); + this.add("com.mediatek.autobootcontroller"); + this.add("com.android.providers.telephony"); + this.add("com.android.dynsystem"); + this.add("com.mediatek.camera"); + this.add("com.android.providers.calendar"); + this.add("com.mediatek.telephony"); + this.add("com.android.providers.media"); + this.add("com.android.theme.icon.square"); + this.add("com.android.internal.systemui.navbar.gestural_wide_back"); + this.add("com.mediatek.location.lppe.main"); + this.add("com.android.wallpapercropper"); + this.add("com.android.theme.color.cinnamon"); + this.add("com.mediatek.gnss.nonframeworklbs"); + this.add("com.verizon.remoteSimlock"); + this.add("com.android.protips"); + this.add("com.android.theme.icon_pack.rounded.systemui"); + this.add("com.android.documentsui"); + this.add("com.android.externalstorage"); + this.add("com.mediatek.ygps"); + this.add("com.mediatek.simprocessor"); + this.add("com.android.htmlviewer"); + this.add("com.mediatek.autodialer"); + this.add("com.mediatek.mms.appservice"); + this.add("com.android.companiondevicemanager"); + this.add("com.android.quicksearchbox"); + this.add("com.android.mms.service"); + this.add("com.android.providers.downloads"); + this.add("com.adups.fota"); + this.add("com.mediatek.engineermode"); + this.add("com.android.theme.icon_pack.rounded.android"); + this.add("com.example.hragingtest"); + this.add("com.mediatek.omacp"); + this.add("com.bsm_wqy.validationtools"); + this.add("com.android.browser"); + this.add("com.android.theme.icon_pack.circular.themepicker"); + this.add("com.android.soundrecorder"); + this.add("com.android.providers.downloads.ui"); + this.add("com.android.pacprocessor"); + this.add("com.android.simappdialog"); + this.add("com.android.networkstack"); + this.add("com.android.internal.display.cutout.emulation.tall"); + this.add("com.android.modulemetadata"); + this.add("com.android.certinstaller"); + this.add("com.android.theme.color.black"); + this.add("com.android.carrierconfig"); + this.add("com.android.theme.color.green"); + this.add("com.android.theme.color.ocean"); + this.add("com.android.theme.color.space"); + this.add("com.android.internal.systemui.navbar.threebutton"); + this.add("android"); + this.add("com.android.contacts"); + this.add("com.mediatek.emcamera"); + this.add("com.android.theme.icon_pack.rounded.launcher"); + this.add("com.st.nfc.dta.mobile"); + this.add("com.android.egg"); + this.add("com.android.mms"); + this.add("com.android.mtp"); + this.add("com.android.nfc"); + this.add("com.android.ons"); + this.add("com.android.stk"); + this.add("com.android.launcher3"); + this.add("com.android.backupconfirm"); + this.add("com.mediatek.security"); + this.add("com.android.internal.systemui.navbar.twobutton"); + this.add("com.android.provision"); + this.add("com.android.statementservice"); + this.add("com.android.hotspot2"); + this.add("com.mediatek.mdmlsample"); + this.add("com.android.settings.intelligence"); + this.add("com.android.calendar"); + this.add("com.mediatek.frameworkresoverlay"); + this.add("com.debug.loggerui"); + this.add("com.android.internal.systemui.navbar.gestural_extra_wide_back"); + this.add("com.android.providers.settings"); + this.add("com.android.sharedstoragebackup"); + this.add("com.mediatek.batterywarning"); + this.add("com.android.printspooler"); + this.add("com.android.theme.icon_pack.filled.settings"); + this.add("com.android.dreams.basic"); + this.add("com.android.webview"); + this.add("com.android.se"); + this.add("com.android.inputdevices"); + this.add("com.chartcross.gpstest"); + this.add("com.android.bips"); + this.add("com.mediatek"); + this.add("com.android.theme.icon_pack.circular.settings"); + this.add("com.android.musicfx"); + this.add("com.android.cellbroadcastreceiver"); + this.add("com.android.theme.icon.teardrop"); + this.add("android.ext.shared"); + this.add("com.android.onetimeinitializer"); + this.add("com.android.server.telecom"); + this.add("com.android.keychain"); + this.add("com.mediatek.security.service"); + this.add("com.android.printservice.recommendation"); + this.add("com.android.dialer"); + this.add("com.android.gallery3d"); + this.add("com.android.theme.icon_pack.filled.systemui"); + this.add("android.ext.services"); + this.add("com.android.calllogbackup"); + this.add("com.hr.factorytesting"); + this.add("com.android.localtransport"); + this.add("com.android.packageinstaller"); + this.add("com.android.carrierdefaultapp"); + this.add("com.mediatek.atmwifimeta"); + this.add("com.android.theme.font.notoserifsource"); + this.add("com.android.theme.icon_pack.filled.android"); + this.add("com.android.proxyhandler"); + this.add("com.android.theme.icon_pack.circular.systemui"); + this.add("com.android.inputmethod.latin"); + this.add("com.android.managedprovisioning"); + this.add("com.mediatek.capctrl.service"); + this.add("com.mediatek.callrecorder"); + this.add("com.android.wallpaper.livepicker"); + this.add("com.android.apps.tag"); + this.add("com.mediatek.gnssdebugreport"); + this.add("com.android.theme.icon.squircle"); + this.add("com.android.storagemanager"); + this.add("com.android.bookmarkprovider"); + this.add("com.android.settings"); + this.add("com.google.android.inputmethod.pinyin"); + this.add("com.android.theme.icon_pack.filled.launcher"); + this.add("com.android.networkstack.permissionconfig"); + this.add("com.mediatek.mdmconfig"); + this.add("com.mediatek.lbs.em2.ui"); + this.add("com.android.cts.ctsshim"); + this.add("com.android.theme.icon_pack.circular.launcher"); + this.add("com.android.vpndialogs"); + this.add("com.android.email"); + this.add("com.android.music"); + this.add("com.android.phone"); + this.add("com.android.shell"); + this.add("com.android.theme.icon_pack.filled.themepicker"); + this.add("com.android.wallpaperbackup"); + this.add("com.android.providers.blockednumber"); + this.add("com.android.providers.userdictionary"); + this.add("com.android.emergency"); + this.add("com.android.internal.systemui.navbar.gestural"); + this.add("com.android.location.fused"); + this.add("com.android.theme.color.orchid"); + this.add("com.android.deskclock"); + this.add("com.android.systemui"); + this.add("com.android.theme.color.purple"); + this.add("com.android.bluetoothmidiservice"); + this.add("com.android.permissioncontroller"); + this.add("com.android.traceur"); + this.add("com.mediatek.sensorhub.ui"); + this.add("android.auto_generated_rro_product__"); + this.add("com.android.bluetooth"); + this.add("com.android.wallpaperpicker"); + this.add("com.android.providers.contacts"); + this.add("com.android.captiveportallogin"); + this.add("com.android.theme.icon.roundedrect"); + this.add("com.android.internal.systemui.navbar.gestural_narrow_back"); + this.add("com.android.theme.icon_pack.rounded.settings"); + this.add("com.mediatek.dataprotection"); + this.add("com.wapi.wapicertmanager"); + this.add("android.auto_generated_rro_vendor__"); + this.add("com.android.theme.icon_pack.circular.android"); + this.add("com.example.eyeshielyplus"); + this.add("cn.com.bifa.eyeshiely"); + }}; + + public static final Set systemApps = new HashSet() {{ + this.add("com.android.deskclock"); + this.add("com.android.music"); + this.add("com.android.documentsui"); + this.add("com.mediatek.camera"); + this.add("com.android.calendar"); + this.add("com.android.calculator2"); + this.add("com.android.gallery3d"); + this.add("com.android.soundrecorder"); + this.add("com.android.settings"); + this.add("org.chromium.chrome"); + this.add("com.softwinner.music"); + this.add("com.softwinner.miracastReceiver"); + this.add("com.softwinner.camera"); + this.add("org.chromium.webview_shell"); +// this.add("com.uiuipad.find"); +// this.add("com.uiuipad.os"); + this.add("com.softwinner.videoplayer"); + this.add("com.sohu.inputmethod.sogou"); + this.add("com.tencent.mtt"); + }}; + + /** + * 需要管控的系统应用 + */ + public static final Set systemapp = new HashSet() {{ + this.add("com.android.gallery3d");//图库 + this.add("com.android.settings");//图库 + this.add("com.android.deskclock");//时钟 + this.add("com.android.music");//音乐 + this.add("com.mediatek.camera");//相机 + this.add("com.android.camera"); + this.add("com.android.camera2");//展讯相机 + this.add("com.android.documentsui");//文件 + this.add("com.mediatek.filemanager");//文件 + this.add("com.android.soundrecorder");//录音机 + this.add("com.android.browser");//浏览器 + this.add("com.android.mms");//信息 + this.add("com.android.messaging");//展讯信息 + this.add("com.android.fmradio");//FM电台 + this.add("com.android.dialer");//电话 + this.add("com.android.contacts");//通讯录 + //根据需求内置 + this.add("com.easyclient.activity");//移动课堂 + this.add("com.jiandan.mobilelesson");//简单课堂 + this.add(PackageNames.APPSTORE);//教官壹 + //展讯 + this.add("com.android.calculator2");//计算器 + this.add("com.android.email");//电子邮件 + this.add("com.android.calendar");//日历 + + this.add("com.tencent.wework"); + this.add("com.tencent.mm"); + this.add("cn.wps.moffice_eng"); + this.add("com.baidu.BaiduMap"); + }}; + + /** + * 预置的可以卸载的系统应用,判断出来为第三方 + */ + public static final Set canremove_systemapp = new HashSet() {{ + this.add("com.android.quicksearchbox"); + this.add("com.android.calendar"); + this.add("com.android.dreams.basic"); + this.add("com.android.musicfx"); + this.add("com.android.email"); + this.add("com.jiaoguanyi.sysc"); + }}; + + /** + * 需要管控的系统可以卸载的应用 + */ + public static final Set show_canremove_systemapp = new HashSet() {{ + this.add("com.android.calendar"); +// this.add("com.android.email"); + }}; + + /** + * 爱华项目app + */ + public static final Set aihuaApp = new HashSet() {{ + this.add("com.liuyang.jcstudentside"); + this.add("com.qi.studycomputer.launcher"); + this.add("com.qi.xiaoshi"); + this.add("com.hardware.cn"); + this.add("com.qi.gamemodel"); + this.add("com.wyt.tongbuyouxue"); + this.add("com.qi.wyt.setting"); + this.add("air.wyt.modloader"); + this.add("com.android.calculator2"); + this.add("com.qi.TFSystem"); + this.add("com.qi.appstore"); + + this.add("com.wyt.evaluating"); + this.add("com.wyt.picturebook"); +// this.add("com.hhdd.kadahd"); + this.add("com.wyt.onlinedic"); + this.add("com.ximalaya.ting.kid"); + this.add("com.baidu.duershow.child"); + this.add("com.gl.souti"); + this.add("com.ihuman.pinyin"); + this.add("com.hongen.app.word"); + this.add("com.wyt.parents_assistant"); + this.add("com.wyt.forbitpoint"); + this.add("com.wyt.lessonhelper"); + this.add("com.wyt.wangkexueximvvm"); + this.add("com.wyt.clicktoread"); + this.add("com.robot.app_ai"); + this.add("com.wyt.appstore"); + this.add("air.com.wyt.GLLearnMain"); + this.add("com.wyt.examcenter"); + + this.add("com.gl.compositioncorrection"); + this.add("com.gl.compositioncorrectionen"); + this.add("cn.wps.moffice_eng"); + this.add("com.ckl.launcher"); + + this.add("net.forclass.fcstudent"); + this.add("com.creative.strokeprovider"); + this.add("com.ckl.oraltraining"); + this.add("com.ckl.fcfilemanager"); + + this.add("com.iflytek.inputmethod"); + this.add("com.wyt.wangkexueximvvm1"); + this.add("com.android.stk"); + this.add("com.shoufei.aole"); + + this.add("com.ygyb.yischool"); + }}; + + + /** + * 学习桌面和九学王app + */ + public static final Set jxwApp = new HashSet() {{ + this.add("com.google.android.inputmethod.pinyin"); + this.add("air.com.zhihuiyoujiao.flashplayer"); + this.add("com.example.arithmeticformula"); + this.add("com.example.elementcycleapp"); + this.add("com.example.pianpangbushou"); + this.add("com.iflytek.cyber.iot.show.core"); + this.add("com.iflytek.speechcloud"); + this.add("com.jxw.bihuamingcheng"); + this.add("com.jxw.bishunguize"); + this.add("com.jxw.characterlearning"); + this.add("com.jxw.dmxcy"); + this.add("com.jxw.englishsoundmark"); + this.add("com.jxw.examsystem"); + this.add("com.jxw.game"); + this.add("com.jxw.gb.zwpg"); + this.add("com.jxw.handwrite"); + this.add("com.jxw.jinfangyici"); + this.add("com.jxw.jxwbook"); + this.add("com.jxw.jxwcalculator"); + this.add("com.jxw.laboratory"); + this.add("com.jxw.learnchinesepinyin"); + this.add("com.jxw.letterstudynew"); + this.add("com.jxw.liancichengju"); + this.add("com.jxw.mskt.video"); + this.add("com.jxw.newyouer.video"); + this.add("com.jxw.online_study"); + this.add("com.jxw.question"); + this.add("com.jxw.schultegrid"); + this.add("com.jxw.singsound"); + this.add("com.jxw.studydigital"); + this.add("com.jxw.teacher.video"); + this.add("com.jxw.wuweijidanci"); + this.add("com.jxw.youer.video"); + this.add("com.jxw.yuwenxiezuo"); + this.add("com.jxw.yyhb"); + this.add("com.jxw.zncd"); + this.add("com.oirsdfg89.flg"); + this.add("com.study.flashplayer"); + this.add("com.tech.translate"); + + this.add("com.uiui.zybrowser"); + this.add("com.uiui.zysn"); + this.add("com.jxw.launcher"); + this.add("com.uiui.zyappstore"); + this.add("com.uiui.zy"); + this.add("com.uiui.zyos"); + + this.add("com.teclast.zyos"); + this.add("com.teclast.zybrowser"); + this.add("com.teclast.zyappstore"); + this.add("com.teclast.zy"); + }}; + + /** + * 内置政务桌面项目内置白名单 + */ + public static final Set zhengwu = new HashSet() {{ + this.add("com.tencent.wework"); + this.add("com.tencent.mm"); + this.add("com.baidu.BaiduMap"); + this.add("com.alibaba.android.rimet"); + this.add("com.tencent.wemeet.app"); + this.add("cn.wps.moffice_eng"); + }}; + + /** + * dongwa桌面app + */ + public static final Set dongwa = new HashSet() {{ + this.add("com.jxw.singsound"); + this.add("com.qunyu.dividedroad"); + this.add("com.gl.dwlauncher"); + this.add("com.gl.dongwa"); + }}; + private static String TAG = ApkUtils.class.getSimpleName(); public static synchronized boolean getRootAhth() { @@ -712,407 +1138,6 @@ public class ApkUtils { return applicationInfos; } - //预置的可以卸载的系统应用,判断出来为第三方 - public static List canremove_systemapp = new ArrayList() {{ - this.add("com.android.quicksearchbox"); - this.add("com.android.calendar"); - this.add("com.android.dreams.basic"); - this.add("com.android.musicfx"); - this.add("com.android.email"); - this.add("com.jiaoguanyi.sysc"); - }}; - - //需要管控的系统可以卸载的应用 - public static List show_canremove_systemapp = new ArrayList() {{ - this.add("com.android.calendar"); -// this.add("com.android.email"); - }}; - - - //需要管控的系统应用 - public static List systemapp = new ArrayList() {{ - this.add("com.android.gallery3d");//图库 - this.add("com.android.settings");//图库 - this.add("com.android.deskclock");//时钟 - this.add("com.android.music");//音乐 - this.add("com.mediatek.camera");//相机 - this.add("com.android.camera"); - this.add("com.android.camera2");//展讯相机 - this.add("com.android.documentsui");//文件 - this.add("com.mediatek.filemanager");//文件 - this.add("com.android.soundrecorder");//录音机 - this.add("com.android.browser");//浏览器 - this.add("com.android.mms");//信息 - this.add("com.android.messaging");//展讯信息 - this.add("com.android.fmradio");//FM电台 - this.add("com.android.dialer");//电话 - this.add("com.android.contacts");//通讯录 - //根据需求内置 - this.add("com.easyclient.activity");//移动课堂 - this.add("com.jiandan.mobilelesson");//简单课堂 - this.add(PackageNames.APPSTORE);//教官壹 - //展讯 - this.add("com.android.calculator2");//计算器 - this.add("com.android.email");//电子邮件 - this.add("com.android.calendar");//日历 - - this.add("com.tencent.wework"); - this.add("com.tencent.mm"); - this.add("cn.wps.moffice_eng"); - this.add("com.baidu.BaiduMap"); - }}; - - //桌面app - public static List desktopAPP = new ArrayList() {{ - this.add("com.aoleyunos.dop1"); - this.add("com.aoleyunos.dop2"); - this.add("com.aoleyunos.dop3"); - this.add("com.aoleyunos.dop4"); - this.add("com.aoleyunos.dop5"); - this.add("com.aoleyunos.dop6"); - this.add("com.aoleyunos.dop7"); - this.add("com.aoleyunos.dop8"); - this.add("com.aoleyunos.dop9"); - this.add("com.aoleyunos.dop10"); -// this.add("com.uiuios.jgy1"); -// this.add("com.uiuios.jgy2"); -// this.add("com.android.uiuios"); -// this.add("com.shoufei.aole"); - }}; - - public static Set aoleyunAPP = new HashSet() {{ - this.add(BuildConfig.APPLICATION_ID); - this.add("com.aoleyun.appstore"); - this.add("com.aoleyun.sn"); - this.add("com.aoleyun.info"); - this.add("com.aoleyun.os"); - this.add("com.aoleyun.browser"); - this.add("com.uiui.filecloud"); - this.add("com.gl.dwlauncher"); - this.add("com.qunyu.dividedroad"); - this.add("com.ygyb.yischool"); - this.add("com.yxxmk.uiui"); - this.add("com.uiui.floatwindow"); - this.add("com.uiuipad.find"); - this.add("com.uiuipad.appstore"); - this.add("com.uiuipad.os"); - this.add("com.uiuipad.zyinfo"); - this.add("com.yixuepai.os"); - this.add("com.tongyi.aistudent"); - }}; - - //出厂自带的app - public static List factoryapp = new ArrayList() {{ - this.add("com.android.fmradio"); - this.add("com.mediatek.gba"); - this.add("com.mediatek.ims"); - this.add("com.mediatek.ppl"); - this.add("com.android.cts.priv.ctsshim"); - this.add("com.android.internal.display.cutout.emulation.corner"); - this.add("com.android.internal.display.cutout.emulation.double"); - this.add("com.mediatek.autobootcontroller"); - this.add("com.android.providers.telephony"); - this.add("com.android.dynsystem"); - this.add("com.mediatek.camera"); - this.add("com.android.providers.calendar"); - this.add("com.mediatek.telephony"); - this.add("com.android.providers.media"); - this.add("com.android.theme.icon.square"); - this.add("com.android.internal.systemui.navbar.gestural_wide_back"); - this.add("com.mediatek.location.lppe.main"); - this.add("com.android.wallpapercropper"); - this.add("com.android.theme.color.cinnamon"); - this.add("com.mediatek.gnss.nonframeworklbs"); - this.add("com.verizon.remoteSimlock"); - this.add("com.android.protips"); - this.add("com.android.theme.icon_pack.rounded.systemui"); - this.add("com.android.documentsui"); - this.add("com.android.externalstorage"); - this.add("com.mediatek.ygps"); - this.add("com.mediatek.simprocessor"); - this.add("com.android.htmlviewer"); - this.add("com.mediatek.autodialer"); - this.add("com.mediatek.mms.appservice"); - this.add("com.android.companiondevicemanager"); - this.add("com.android.quicksearchbox"); - this.add("com.android.mms.service"); - this.add("com.android.providers.downloads"); - this.add("com.adups.fota"); - this.add("com.mediatek.engineermode"); - this.add("com.android.theme.icon_pack.rounded.android"); - this.add("com.example.hragingtest"); - this.add("com.mediatek.omacp"); - this.add("com.bsm_wqy.validationtools"); - this.add("com.android.browser"); - this.add("com.android.theme.icon_pack.circular.themepicker"); - this.add("com.android.soundrecorder"); - this.add("com.android.providers.downloads.ui"); - this.add("com.android.pacprocessor"); - this.add("com.android.simappdialog"); - this.add("com.android.networkstack"); - this.add("com.android.internal.display.cutout.emulation.tall"); - this.add("com.android.modulemetadata"); - this.add("com.android.certinstaller"); - this.add("com.android.theme.color.black"); - this.add("com.android.carrierconfig"); - this.add("com.android.theme.color.green"); - this.add("com.android.theme.color.ocean"); - this.add("com.android.theme.color.space"); - this.add("com.android.internal.systemui.navbar.threebutton"); - this.add("android"); - this.add("com.android.contacts"); - this.add("com.mediatek.emcamera"); - this.add("com.android.theme.icon_pack.rounded.launcher"); - this.add("com.st.nfc.dta.mobile"); - this.add("com.android.egg"); - this.add("com.android.mms"); - this.add("com.android.mtp"); - this.add("com.android.nfc"); - this.add("com.android.ons"); - this.add("com.android.stk"); - this.add("com.android.launcher3"); - this.add("com.android.backupconfirm"); - this.add("com.mediatek.security"); - this.add("com.android.internal.systemui.navbar.twobutton"); - this.add("com.android.provision"); - this.add("com.android.statementservice"); - this.add("com.android.hotspot2"); - this.add("com.mediatek.mdmlsample"); - this.add("com.android.settings.intelligence"); - this.add("com.android.calendar"); - this.add("com.mediatek.frameworkresoverlay"); - this.add("com.debug.loggerui"); - this.add("com.android.internal.systemui.navbar.gestural_extra_wide_back"); - this.add("com.android.providers.settings"); - this.add("com.android.sharedstoragebackup"); - this.add("com.mediatek.batterywarning"); - this.add("com.android.printspooler"); - this.add("com.android.theme.icon_pack.filled.settings"); - this.add("com.android.dreams.basic"); - this.add("com.android.webview"); - this.add("com.android.se"); - this.add("com.android.inputdevices"); - this.add("com.chartcross.gpstest"); - this.add("com.android.bips"); - this.add("com.mediatek"); - this.add("com.android.theme.icon_pack.circular.settings"); - this.add("com.android.musicfx"); - this.add("com.android.cellbroadcastreceiver"); - this.add("com.android.theme.icon.teardrop"); - this.add("android.ext.shared"); - this.add("com.android.onetimeinitializer"); - this.add("com.android.server.telecom"); - this.add("com.android.keychain"); - this.add("com.mediatek.security.service"); - this.add("com.android.printservice.recommendation"); - this.add("com.android.dialer"); - this.add("com.android.gallery3d"); - this.add("com.android.theme.icon_pack.filled.systemui"); - this.add("android.ext.services"); - this.add("com.android.calllogbackup"); - this.add("com.hr.factorytesting"); - this.add("com.android.localtransport"); - this.add("com.android.packageinstaller"); - this.add("com.android.carrierdefaultapp"); - this.add("com.mediatek.atmwifimeta"); - this.add("com.android.theme.font.notoserifsource"); - this.add("com.android.theme.icon_pack.filled.android"); - this.add("com.android.proxyhandler"); - this.add("com.android.theme.icon_pack.circular.systemui"); - this.add("com.android.inputmethod.latin"); - this.add("com.android.managedprovisioning"); - this.add("com.mediatek.capctrl.service"); - this.add("com.mediatek.callrecorder"); - this.add("com.android.wallpaper.livepicker"); - this.add("com.android.apps.tag"); - this.add("com.mediatek.gnssdebugreport"); - this.add("com.android.theme.icon.squircle"); - this.add("com.android.storagemanager"); - this.add("com.android.bookmarkprovider"); - this.add("com.android.settings"); - this.add("com.google.android.inputmethod.pinyin"); - this.add("com.android.theme.icon_pack.filled.launcher"); - this.add("com.android.networkstack.permissionconfig"); - this.add("com.mediatek.mdmconfig"); - this.add("com.mediatek.lbs.em2.ui"); - this.add("com.android.cts.ctsshim"); - this.add("com.android.theme.icon_pack.circular.launcher"); - this.add("com.android.vpndialogs"); - this.add("com.android.email"); - this.add("com.android.music"); - this.add("com.android.phone"); - this.add("com.android.shell"); - this.add("com.android.theme.icon_pack.filled.themepicker"); - this.add("com.android.wallpaperbackup"); - this.add("com.android.providers.blockednumber"); - this.add("com.android.providers.userdictionary"); - this.add("com.android.emergency"); - this.add("com.android.internal.systemui.navbar.gestural"); - this.add("com.android.location.fused"); - this.add("com.android.theme.color.orchid"); - this.add("com.android.deskclock"); - this.add("com.android.systemui"); - this.add("com.android.theme.color.purple"); - this.add("com.android.bluetoothmidiservice"); - this.add("com.android.permissioncontroller"); - this.add("com.android.traceur"); - this.add("com.mediatek.sensorhub.ui"); - this.add("android.auto_generated_rro_product__"); - this.add("com.android.bluetooth"); - this.add("com.android.wallpaperpicker"); - this.add("com.android.providers.contacts"); - this.add("com.android.captiveportallogin"); - this.add("com.android.theme.icon.roundedrect"); - this.add("com.android.internal.systemui.navbar.gestural_narrow_back"); - this.add("com.android.theme.icon_pack.rounded.settings"); - this.add("com.mediatek.dataprotection"); - this.add("com.wapi.wapicertmanager"); - this.add("android.auto_generated_rro_vendor__"); - this.add("com.android.theme.icon_pack.circular.android"); - this.add(PackageNames.OLD_DEVICE_INFO); - this.add(PackageNames.OLD_APPSTORE); - this.add("com.example.eyeshielyplus"); - this.add("cn.com.bifa.eyeshiely"); - }}; - - public static Set aihuaApp = new HashSet() {{ - this.add("com.liuyang.jcstudentside"); - this.add("com.alibaba.android.rimet"); - this.add("com.tencent.wemeet.app"); - this.add("com.qi.studycomputer.launcher"); - - this.add("com.qi.xiaoshi"); - this.add("com.hardware.cn"); - this.add("com.qi.gamemodel"); - this.add("com.wyt.tongbuyouxue"); - this.add("com.qi.wyt.setting"); - this.add("air.wyt.modloader"); -// this.add("com.google.android.inputmethod.pinyin"); - this.add("com.android.calculator2"); - this.add("com.qi.TFSystem"); - this.add("com.qi.appstore"); - - this.add("com.wyt.evaluating"); - this.add("com.wyt.picturebook"); - this.add("com.hhdd.kadahd"); - this.add("com.wyt.onlinedic"); - this.add("com.ximalaya.ting.kid"); - this.add("com.baidu.duershow.child"); - this.add("com.gl.souti"); - this.add("com.ihuman.pinyin"); - this.add("com.hongen.app.word"); - this.add("com.wyt.parents_assistant"); - this.add("com.wyt.forbitpoint"); - this.add("com.wyt.lessonhelper"); - this.add("com.wyt.wangkexueximvvm"); - this.add("com.wyt.clicktoread"); - this.add("com.robot.app_ai"); - this.add("com.wyt.appstore"); - this.add("air.com.wyt.GLLearnMain"); - this.add("com.wyt.examcenter"); - - this.add("com.gl.compositioncorrection"); - this.add("com.gl.compositioncorrectionen"); - this.add("cn.wps.moffice_eng"); - this.add("com.ckl.launcher"); - - this.add("net.forclass.fcstudent"); - this.add("com.creative.strokeprovider"); - this.add("com.ckl.oraltraining"); - this.add("com.ckl.fcfilemanager"); - - this.add("com.iflytek.inputmethod"); - this.add("com.wyt.wangkexueximvvm1"); - this.add("com.android.stk"); - this.add("com.shoufei.aole"); - - this.add("com.ygyb.yischool"); - - this.add("com.tencent.wework"); - this.add("com.tencent.mm"); - this.add("com.baidu.BaiduMap"); - - this.add("com.jxw.singsound"); - this.add("com.qunyu.dividedroad"); - this.add("com.gl.dwlauncher"); - this.add("com.gl.dongwa"); - }}; - - public static Set jxwApp = new HashSet() {{ - this.add("air.com.zhihuiyoujiao.flashplayer"); - this.add("com.example.arithmeticformula"); - this.add("com.example.elementcycleapp"); - this.add("com.example.pianpangbushou"); - this.add("com.iflytek.cyber.iot.show.core"); - this.add("com.iflytek.speechcloud"); - this.add("com.jxw.bihuamingcheng"); - this.add("com.jxw.bishunguize"); - this.add("com.jxw.characterlearning"); - this.add("com.jxw.dmxcy"); - this.add("com.jxw.englishsoundmark"); - this.add("com.jxw.examsystem"); - this.add("com.jxw.game"); - this.add("com.jxw.gb.zwpg"); - this.add("com.jxw.handwrite"); - this.add("com.jxw.jinfangyici"); - this.add("com.jxw.jxwbook"); - this.add("com.jxw.jxwcalculator"); - this.add("com.jxw.laboratory"); - this.add("com.jxw.learnchinesepinyin"); - this.add("com.jxw.letterstudynew"); - this.add("com.jxw.liancichengju"); - this.add("com.jxw.mskt.video"); - this.add("com.jxw.newyouer.video"); - this.add("com.jxw.online_study"); - this.add("com.jxw.question"); - this.add("com.jxw.schultegrid"); - this.add("com.jxw.singsound"); - this.add("com.jxw.studydigital"); - this.add("com.jxw.teacher.video"); - this.add("com.jxw.wuweijidanci"); - this.add("com.jxw.youer.video"); - this.add("com.jxw.yuwenxiezuo"); - this.add("com.jxw.yyhb"); - this.add("com.jxw.zncd"); - this.add("com.oirsdfg89.flg"); - this.add("com.study.flashplayer"); - this.add("com.tech.translate"); - - this.add("com.uiui.zybrowser"); - this.add("com.uiui.zysn"); - this.add("com.jxw.launcher"); - this.add("com.uiui.zyappstore"); - this.add("com.uiui.zy"); - this.add("com.uiui.zyos"); - - this.add("com.teclast.zyos"); - this.add("com.teclast.zybrowser"); - this.add("com.teclast.zyappstore"); - this.add("com.teclast.zy"); - }}; - - public static final Set systemApps = new HashSet() {{ - this.add("com.android.deskclock"); - this.add("com.android.music"); - this.add("com.android.documentsui"); - this.add("com.mediatek.camera"); - this.add("com.android.calendar"); - this.add("com.android.calculator2"); - this.add("com.android.gallery3d"); - this.add("com.android.soundrecorder"); - this.add("com.android.settings"); - this.add("org.chromium.chrome"); - this.add("com.softwinner.music"); - this.add("com.softwinner.miracastReceiver"); - this.add("com.softwinner.camera"); - this.add("org.chromium.webview_shell"); -// this.add("com.uiuipad.find"); -// this.add("com.uiuipad.os"); - this.add("com.softwinner.videoplayer"); - this.add("com.sohu.inputmethod.sogou"); - this.add("com.tencent.mtt"); - }}; - public static void showAllAPP(Context context) { PackageManager pm = context.getPackageManager(); // 查询所有已经安装的应用程序 diff --git a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java index ac637ed..90be601 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java @@ -44,6 +44,7 @@ import com.aoleyun.sn.bean.AppListInfo; import com.aoleyun.sn.bean.Appground; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.ForceDownloadData; +import com.aoleyun.sn.bean.LessonJson; import com.aoleyun.sn.bean.NetAndLaunchBean; import com.aoleyun.sn.bean.NetAndLaunchData; import com.aoleyun.sn.bean.TTAppground; @@ -122,6 +123,9 @@ public class JGYUtils { private Context mContext; private ContentResolver crv; + private LessonJson mLessonJson; + private TimeUtils.ContralTime mContralTime; + public static final int UnknowPlatform = 0; public static final int MTKPlatform = 1; public static final int CubePlatform = 2; @@ -134,6 +138,7 @@ public class JGYUtils { public static final int G10PPlatform = 12; public static final int C2Platform = 13; public static final int YXPD1Platform = 15; + public static final int G11Platform = 16; public static final String Other = "其他"; @@ -148,6 +153,7 @@ public class JGYUtils { public static final String G10PTag = "G10P"; public static final String C2Tag = "MTK8183"; public static final String YXPD1TAG = "YXPD1"; + public static final String G11TAG = "MTKG11"; private CacheHelper cacheHelper; @@ -186,6 +192,7 @@ public class JGYUtils { }; bindEbaifenService(); } + refresh(); } public static void init(Context context) { @@ -266,6 +273,9 @@ public class JGYUtils { } else if (YXPD1TAG.equalsIgnoreCase(platform)) { Log.i(TAG, "checkAppPlatform: " + "YXPD1"); return YXPD1Platform; + } else if (G11TAG.equalsIgnoreCase(platform)) { + Log.i(TAG, "checkAppPlatform: " + "MTKG11"); + return G11Platform; } else { Log.i(TAG, "checkAppPlatform: " + "没有数据"); return UnknowPlatform; @@ -310,6 +320,8 @@ public class JGYUtils { getAppPlatformCallback.AppPlatform(C2Platform); } else if (YXPD1TAG.equalsIgnoreCase(platform)) { getAppPlatformCallback.AppPlatform(YXPD1Platform); + } else if (G11TAG.equalsIgnoreCase(platform)) { + getAppPlatformCallback.AppPlatform(G11Platform); } else { getAppPlatformCallback.AppPlatform(UnknowPlatform); } @@ -337,6 +349,10 @@ public class JGYUtils { return G10PTag; } else if (C2Tag.equalsIgnoreCase(platform)) { return C2Tag; + } else if (YXPD1TAG.equalsIgnoreCase(platform)) { + return YXPD1TAG; + } else if (G11TAG.equalsIgnoreCase(platform)) { + return G11TAG; } else { return Other; } @@ -1191,8 +1207,6 @@ public class JGYUtils { HashSet defaultPackages = new HashSet() {{ this.add(BuildConfig.APPLICATION_ID); - this.add(PackageNames.OLD_DEVICE_INFO);//设备信息 - this.add(PackageNames.OLD_APPSTORE);//教管壹 this.add(PackageNames.DEVICE_INFO); this.add(PackageNames.APPSTORE); this.add("com.info.sn"); @@ -1227,8 +1241,14 @@ public class JGYUtils { pkgSet.addAll(defaultPackages); pkgSet.addAll(ApkUtils.desktopAPP); pkgSet.addAll(ApkUtils.aoleyunAPP); - pkgSet.addAll(ApkUtils.aihuaApp); pkgSet.addAll(ApkUtils.jxwApp); + if ("AS001".equals(Build.MODEL)) + pkgSet.addAll(ApkUtils.aihuaApp); + if ("D1".equals(Build.MODEL)) + pkgSet.addAll(ApkUtils.dongwa); + if ("G23".equals(Build.MODEL)) + pkgSet.addAll(ApkUtils.zhengwu); + pkgSet.removeIf(TextUtils::isEmpty); if (JGYUtils.C2Tag.equalsIgnoreCase(JGYUtils.getInstance().getAppPlatform())) { pkgSet.remove("com.tencent.mm"); @@ -1250,8 +1270,13 @@ public class JGYUtils { HashSet pkgSet = new HashSet<>(defaultPackages); pkgSet.addAll(ApkUtils.desktopAPP); pkgSet.addAll(ApkUtils.aoleyunAPP); - pkgSet.addAll(ApkUtils.aihuaApp); pkgSet.addAll(ApkUtils.jxwApp); + if ("AS001".equals(Build.MODEL)) + pkgSet.addAll(ApkUtils.aihuaApp); + if ("D1".equals(Build.MODEL)) + pkgSet.addAll(ApkUtils.dongwa); + if ("G23".equals(Build.MODEL)) + pkgSet.addAll(ApkUtils.zhengwu); if (JGYUtils.C2Tag.equalsIgnoreCase(JGYUtils.getInstance().getAppPlatform())) { pkgSet.remove("com.tencent.mm"); } @@ -1586,7 +1611,11 @@ public class JGYUtils { */ public void hideSystemAPP() { PackageManager pm = mContext.getPackageManager(); - pm.setApplicationEnabledSetting("com.yxxmk.uiui", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0); + try { + pm.setApplicationEnabledSetting("com.yxxmk.uiui", PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0); + } catch (Exception e) { + Log.e(TAG, "hideSystemAPP: " + e.getMessage()); + } Intent filterIntent = new Intent(Intent.ACTION_MAIN, null); //Intent.CATEGORY_LAUNCHER主要的过滤条件 filterIntent.addCategory(Intent.CATEGORY_LAUNCHER); @@ -1772,6 +1801,7 @@ public class JGYUtils { || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G10PPlatform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform ) { Settings.Global.putInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, state == 1 ? 0 : 1); Settings.Global.putInt(crv, Settings.Global.ADB_ENABLED, state == 1 ? 0 : 1); @@ -2009,7 +2039,7 @@ public class JGYUtils { /** * 如果界面正在最近任务列表,有些app可能不会被清理 */ - private void gotoLauncher() { + public void gotoLauncher() { Intent i = new Intent(Intent.ACTION_MAIN); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //android123提示如果是服务里调用,必须加入new task标识 i.addCategory(Intent.CATEGORY_HOME); @@ -2223,13 +2253,33 @@ public class JGYUtils { } public void checkDefaultDesktop(String pkg) { - String desktopPkg = (String) SPUtils.get(mContext, "default_launcher", ""); + String desktopPkg = getDefaultDesktop(); +// String desktopPkg = (String) SPUtils.get(mContext, "default_launcher", ""); Log.e(TAG, "checkDefaultDesktop: " + desktopPkg); - if (desktopPkg.equalsIgnoreCase(pkg)) { + if (pkg.equalsIgnoreCase(desktopPkg)) { setDefaultDesktop(pkg); } } + /** + * 获取默认的简易桌面,学习桌面或者默认应用桌面 + * + * @return + */ + public String getDefaultDesktop() { + String defaultDesktop = mMMKV.decodeString(CommonConfig.DEFAULT_DESKTOP_PACKAGE_NAME, ""); + String defaultLauncher = mMMKV.decodeString(CommonConfig.DEFAULT_LAUNCHER_PACKAGE_NAME, ""); + if (TextUtils.isEmpty(defaultDesktop)) { + if (TextUtils.isEmpty(defaultLauncher)) { + return ""; + } else { + return defaultLauncher; + } + } else { + return defaultDesktop; + } + } + /** * 设置奥乐云桌面为默认 */ @@ -2789,6 +2839,9 @@ public class JGYUtils { } } + /** + * + */ private Set mJxwApps = new HashSet() {{ this.add("air.com.zhihuiyoujiao.flashplayer"); this.add("com.example.arithmeticformula"); @@ -3009,7 +3062,6 @@ public class JGYUtils { } } - /** * No. 55 * 设置默认浏览器 @@ -3034,4 +3086,51 @@ public class JGYUtils { ForegroundAppUtil.openTopApp(mContext); } } + + public void refresh() { + String jsonString = mMMKV.decodeString(CommonConfig.CLOUD_LESSON_SETTINGS_KEY); + if (!TextUtils.isEmpty(jsonString)) { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + LessonJson lessonJson = gson.fromJson(jsonString, type); + if (lessonJson != null) { + this.mLessonJson = lessonJson; + TimeUtils.ContralTime contralTime = TimeUtils.getContralTime(mContext, lessonJson.getStart_time(), lessonJson.getEnd_time()); + if (contralTime != null) { + mContralTime = contralTime; + } + } + } + } + + /** + * @param pkg + * @return true为能打开 + */ + public boolean isCloudLessonMod(String pkg) { + if (ApkUtils.isSystemApp(mContext, pkg)) { + Log.e(TAG, "isCloudLessonMod: is system app"); + return true; + } + if (mJxwApps.contains(pkg)) { + return true; + } + if (mLessonJson == null) + return true; + if (mLessonJson.getIs_lesson() == 1) { + if (mContralTime == null) { + return false; + } else { + String pkgs = mLessonJson.getPkgs(); + if (mContralTime.inControlTime()) { + return pkgs.contains(pkg); + } else { + return false; + } + } + } else { + return true; + } + } } diff --git a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java index 21b4ffe..23c072e 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java @@ -12,6 +12,7 @@ import android.text.TextUtils; import android.util.Log; import com.aoleyun.sn.BuildConfig; +import com.aoleyun.sn.bean.SnSetting; import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; import com.aoleyun.sn.gson.GsonUtils; @@ -71,7 +72,11 @@ public class SysSettingUtils { Log.e("setDisableSetting", "Close all settings: "); setPhoneList(context, 1); setUSBstate(context, 1); - setBluetooth(context, 1); + if (JGYUtils.getInstance().getAppPlatform().equals(JGYUtils.YXPD1TAG)) { + setBluetooth(context, 1); + } else { + setBluetooth(context, 0); + } setHotspot(context, 1); setBar(context, 1); setCamera(context, 1); @@ -246,7 +251,6 @@ public class SysSettingUtils { context.sendBroadcast(usbIntent); } } - } private static void setBluetooth(Context context, int state) { @@ -654,7 +658,7 @@ public class SysSettingUtils { } private static void setCanReset(Context context, int state) { - boolean aole_restore_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, 0); + boolean aole_restore_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_RESTORE_FORBID_ON, state); Log.e(TAG, "aole_restore_forbid_on: " + aole_restore_forbid_on); //默认打开 } @@ -822,10 +826,10 @@ public class SysSettingUtils { JsonElement appInstall = jsonObject.get("is_app_install"); if (appInstall != null) { int is_app_install = appInstall.getAsInt(); - Log.e(TAG, "setAdminApp: is_admin_app = " + is_app_install); - Settings.System.putInt(context.getContentResolver(), "aole_app_allow_install", changeNum(is_app_install)); + Log.e(TAG, "setAdminApp: is_app_install = " + is_app_install); + Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, is_app_install); } else { - Settings.System.putInt(context.getContentResolver(), "aole_app_allow_install", 1); + Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, 0); } JsonElement adminApp = jsonObject.get("is_admin_app"); @@ -847,7 +851,147 @@ public class SysSettingUtils { private static void setAdminApp(Context context, int state) { Log.e(TAG, "setAdminApp: state = " + state); - Settings.Global.putInt(context.getContentResolver(), "is_admin_app", state); - Settings.System.putInt(context.getContentResolver(), "aole_app_allow_install", changeNum(state)); + Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_APP_ALLOW_INSTALL, changeNum(state)); + Settings.Global.putInt(context.getContentResolver(), "is_admin_app", changeNum(state)); } + + + public static void setSnSetting(Context context, SnSetting snSetting) { + if (snSetting != null) { + int is_timecontrol = snSetting.getIs_timecontrol(); + if (is_timecontrol == 0) { + TimeUtils.setEmpty(context); + TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(context); + if (null != c) { + Log.e("getTimeControl", c.toString()); + } + } else { + String start_time = snSetting.getTimecontrol_start(); + String end_time = snSetting.getTimecontrol_end(); + TimeUtils.ContralTime c = TimeUtils.String2ContralTime(context, start_time + "-" + end_time); + if (null != c) { + Log.e("getTimeControl", "OK:" + c.toString()); + } + } + int is_storeinstall = snSetting.getIs_storeinstall(); + Settings.Global.putInt(context.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, is_storeinstall); + int is_usb = snSetting.getIs_usb(); + setUsb(context, changeNum(is_usb)); + int is_bluetooth_file = snSetting.getIs_bluetooth_file(); + setBluetooth(context, changeNum(is_bluetooth_file)); + int is_developer = snSetting.getIs_developer(); + JGYUtils.getInstance().setDeveloperOptions(changeNum(is_developer)); + int is_restore = snSetting.getIs_restore(); + setCanReset(context, changeNum(is_restore)); + int is_topbar = snSetting.getIs_topbar(); + setActionBar(context, changeNum(is_topbar)); + int is_bottombar = snSetting.getIs_bottombar(); + setNavigationBar(context, changeNum(is_bottombar)); + int is_memory_card = snSetting.getIs_memory_card(); + setTF(context, changeNum(is_memory_card)); + + } else { + TimeUtils.setEmpty(context); + TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(context); + if (null != c) { + Log.e("getTimeControl", c.toString()); + } + Settings.Global.putInt(context.getContentResolver(), CommonConfig.AOLEYUN_APPSTORE_INSTALL, 1); + setUsb(context, 0); + setBluetooth(context, 0); + JGYUtils.getInstance().setDeveloperOptions(1); + setCanReset(context, 0); + setActionBar(context, 0); + setNavigationBar(context, 0); + setTF(context, 0); + } + } + + private static void setActionBar(Context context, int status) { + //状态栏显示开关 + int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0); + if (oldNum != status) { + //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 + boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, status); + Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar); + String statusbarStatus = ""; + switch (status) { + case 0: + statusbarStatus = CommonConfig.AOLE_ACTION_SHOW_STATUS_BAR; + break; + case 1: + statusbarStatus = CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR; + break; + default: + } + Intent statusIntent = new Intent(statusbarStatus); +// Intent statusIntent = new Intent(statusbarStatus).setPackage("com.android.systemui"); + context.sendBroadcast(statusIntent); + } + } + + private static void setNavigationBar(Context context, int status) { + //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 + boolean aole_hide_NavigationBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR, status); + Log.e(TAG, "aole_hide_NavigationBar---------" + aole_hide_NavigationBar); + + String navigationStatus = ""; + switch (status) { + case 0: + navigationStatus = CommonConfig.AOLE_ACTION_SHOW_NAVIGATION_BAR; + break; + case 1: + navigationStatus = CommonConfig.AOLE_ACTION_HIDE_NAVIGATION_BAR; + break; + default: + } + Intent navIntent = new Intent(navigationStatus); +// Intent navIntent = new Intent(navigationStatus).setPackage("com.android.systemui"); + context.sendBroadcast(navIntent); + } + + private static void setUsb(Context context, int status) { + //USB数据功能管控 + //仅充电:usb_charge + //MTP模式:usb_mtp + //Midi模式:usb_midi + if (JGYUtils.isCubeDevice()) { + SuperPower mService = (SuperPower) context.getSystemService("mdm"); + switch (status) { + case 0: + mService.setUsbDataDisabled(true); + break; + case 1: + mService.setUsbDataDisabled(false); + break; + default: + } + } else { + String usbStatus; + switch (status) { + default: + case 0: + usbStatus = CommonConfig.AOLE_ACTION_USB_USB_CHARGE; + JGYUtils.getInstance().setMtpEnable(false); + break; + case 1: + usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MTP; + JGYUtils.getInstance().setMtpEnable(true); + break; + case 2: + usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MIDI; + JGYUtils.getInstance().setMtpEnable(false); + break; + } + Intent usbIntent = new Intent(usbStatus); + if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.TeclastP20sPlatform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform + ) { + usbIntent.setPackage("com.android.settings"); + } + context.sendBroadcast(usbIntent); + } + } + + } diff --git a/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java b/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java index 0ee6d29..713b0bf 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/TimeUtils.java @@ -142,6 +142,33 @@ public class TimeUtils { } } + + /** + * 是否在管控时间内 + * + * @param context + * @param startTime + * @param endTime + * @return + */ + public static ContralTime getContralTime(Context context, String startTime, String endTime) { + if (null == startTime || null == endTime || ("00:00".equals(startTime) && "00:00".equals(endTime))) { + return null; + } else { + try { + Date startDate = df.parse(startTime.trim()); + Date endDate = df.parse(endTime.trim()); + ContralTime contralTime = new ContralTime(); + contralTime.setStartTime(df.format(startDate)); + contralTime.setEndTime(df.format(endDate)); + return contralTime; + } catch (ParseException e) { + e.printStackTrace(); + return null; + } + } + } + public static ContralTime String2ContralTime(Context context, @NonNull String timeText) { DateFormat df = ContralTime.getDf(); String[] time = timeText.trim().split("-"); @@ -241,6 +268,14 @@ public class TimeUtils { return df.format(new Date(time)); } + /** + * @return 这个时反的,为了对接专注模式 + */ + public boolean inControlTime() { + long time = System.currentTimeMillis(); + return !inControlTime(time); + } + public boolean inControlTime(long time) { return inControlTime(df.format(new Date(time))); } @@ -256,6 +291,11 @@ public class TimeUtils { try { Date startDate = df.parse(startTime); Date endDate = df.parse(endTime); + Log.e(TAG, "inControlTime: startDate time = " +startDate.getTime()); + Log.e(TAG, "inControlTime: endDate time = " +endDate.getTime()); + if (startDate.getTime() == endDate.getTime()) { + return false; + } Date nowDate = df.parse(time); if (startDate.getTime() > endDate.getTime()) { //开始时间大于结束时间 列 16:00-01:00 diff --git a/app/src/main/java/com/aoleyun/sn/utils/Utils.java b/app/src/main/java/com/aoleyun/sn/utils/Utils.java index c728824..a558950 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/Utils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/Utils.java @@ -1773,6 +1773,7 @@ public class Utils { || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G10PPlatform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform + || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform ) { return Utils.getProperty("ro.build.display.id", "获取失败"); } else {