From 343700837e7293bf43bc281e42bd1cc7a8a375cb Mon Sep 17 00:00:00 2001
From: Fanhuitong <981964879@qq.com>
Date: Mon, 8 Jul 2024 10:32:45 +0800
Subject: [PATCH] =?UTF-8?q?1.4.0705=20=E4=BC=98=E5=8C=96=E5=90=8E=E5=8F=B0?=
=?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=85=A8=E5=B1=80=E9=BB=91=E5=90=8D?=
=?UTF-8?q?=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 4 +-
app/src/main/AndroidManifest.xml | 2 +-
.../sn/activity/main/MainActivity.java | 2 +-
.../sn/activity/main/MainViewModel.java | 19 +-
.../com/aoleyun/sn/bean/BlacklistBean.java | 18 ++
.../com/aoleyun/sn/bean/BluetoothType.java | 53 +++++
.../com/aoleyun/sn/comm/CommonConfig.java | 15 +-
.../com/aoleyun/sn/comm/PackageNames.java | 2 +-
.../sn/network/NetInterfaceManager.java | 94 ++++++++-
.../com/aoleyun/sn/network/UrlAddress.java | 2 +
.../sn/network/api/get/BlackListApi.java | 16 ++
.../java/com/aoleyun/sn/push/PushManager.java | 22 ++-
.../com/aoleyun/sn/receiver/BootReceiver.java | 2 +-
.../aoleyun/sn/receiver/NewAppReceiver.java | 3 +-
.../com/aoleyun/sn/service/GuardService.java | 15 +-
.../aoleyun/sn/service/main/MainSContact.java | 5 +
.../sn/service/main/MainSPresenter.java | 21 +-
.../aoleyun/sn/service/main/MainService.java | 66 ++++++-
.../java/com/aoleyun/sn/utils/ApkUtils.java | 32 ++-
.../java/com/aoleyun/sn/utils/JGYUtils.java | 182 ++++++++++++------
.../com/aoleyun/sn/utils/SysSettingUtils.java | 51 ++++-
.../java/com/aoleyun/sn/utils/WiFiUtils.java | 4 +-
22 files changed, 524 insertions(+), 106 deletions(-)
create mode 100644 app/src/main/java/com/aoleyun/sn/bean/BlacklistBean.java
create mode 100644 app/src/main/java/com/aoleyun/sn/bean/BluetoothType.java
create mode 100644 app/src/main/java/com/aoleyun/sn/network/api/get/BlackListApi.java
diff --git a/app/build.gradle b/app/build.gradle
index 55773f0..425af4b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,8 +29,8 @@ android {
defaultConfig {
applicationId "com.aoleyun.sn"
- versionCode 143
- versionName "1.4.0608"
+ versionCode 153
+ versionName "1.4.0705"
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 24
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1307a74..b832374 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -79,7 +79,7 @@
-
+
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 1a84461..c50f75e 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
@@ -313,7 +313,7 @@ public class MainActivity extends BaseMvvmActivity>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
- Log.e("getAdminApp", "onSubscribe: ");
+ Log.e("getExclusiveAdminApp", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse> listBaseResponse) {
- Log.e("getAdminApp", "onNext: " + listBaseResponse);
+ Log.e("getExclusiveAdminApp", "onNext: " + listBaseResponse);
if (listBaseResponse.code == 200) {
List adminAppInfos = listBaseResponse.data;
JGYUtils.getInstance().installAdminApp(adminAppInfos);
@@ -139,12 +140,12 @@ public class MainViewModel extends BaseViewModel blacklist;
+
+ public List getBlacklist() {
+ return blacklist;
+ }
+
+ public void setBlacklist(List blacklist) {
+ this.blacklist = blacklist;
+ }
+}
diff --git a/app/src/main/java/com/aoleyun/sn/bean/BluetoothType.java b/app/src/main/java/com/aoleyun/sn/bean/BluetoothType.java
new file mode 100644
index 0000000..bf258f8
--- /dev/null
+++ b/app/src/main/java/com/aoleyun/sn/bean/BluetoothType.java
@@ -0,0 +1,53 @@
+package com.aoleyun.sn.bean;
+
+import java.io.Serializable;
+
+public class BluetoothType implements Serializable {
+ private static final long serialVersionUID = -1105070316766010023L;
+
+ int headset;
+ int sound;
+ int mobile;
+ int computer;
+ int keyboard;
+
+ public int getHeadset() {
+ return headset;
+ }
+
+ public void setHeadset(int headset) {
+ this.headset = headset;
+ }
+
+ public int getSound() {
+ return sound;
+ }
+
+ public void setSound(int sound) {
+ this.sound = sound;
+ }
+
+ public int getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(int mobile) {
+ this.mobile = mobile;
+ }
+
+ public int getComputer() {
+ return computer;
+ }
+
+ public void setComputer(int computer) {
+ this.computer = computer;
+ }
+
+ public int getKeyboard() {
+ return keyboard;
+ }
+
+ public void setKeyboard(int keyboard) {
+ this.keyboard = keyboard;
+ }
+}
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 0a54a27..77d686e 100644
--- a/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java
+++ b/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java
@@ -112,7 +112,8 @@ public class CommonConfig {
public final static String AOLE_ACTION_NETWORK_DISALLOW = "aole_network_disallow";
/*允许联网应用 G10P*/
public final static String AOLE_ACTION_NETWORK_ALLOW = "aole_network_allow";
-
+ /*全局黑名单*/
+ public static final String AOLE_APP_WEB_BLACK_LIST = "app_web_black_list";
/*存储卡管控*/
public final static String AOLE_ACTION_SDCARD_FORBID_ON = "aole_sdcard_forbid_on";
@@ -135,6 +136,18 @@ public class CommonConfig {
public final static String AOLE_ACTION_BT_FORBID_ON = "aole_bt_forbid_on";
/*蓝牙音频开关*/
public final static String AOLE_ACTION_BHTVIDEO_FORBID_ON = "aole_bhtvideo_forbid_on";
+ /*控制设备连接蓝牙类型*/
+ public final static String AOLE_ACTION_BT_DEVICE_TYPE = "aole_bt_device_type";
+ /*蓝牙耳机*/
+ public final static String AOLE_BT_HEADSET_KEY = "aole_bt_headset_on";
+ /*音箱*/
+ public final static String AOLE_BT_BOX_KEY = "aole_bt_box_on";
+ /*手机*/
+ public final static String AOLE_BT_PHONE_KEY = "aole_bt_phone_on";
+ /*计算机*/
+ public final static String AOLE_BT_COMPUTER_KEY = "aole_bt_computer_on";
+ /*鼠标键盘*/
+ public final static String AOLE_BT_KEYBOARD_KEY = "aole_bt_keyboard_on" ;
/*电话白名单开关*/
public final static String AOLE_ACTION_WHITE_LIST_ON = "aole_white_list_on";
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 a82c8a0..51026b6 100644
--- a/app/src/main/java/com/aoleyun/sn/comm/PackageNames.java
+++ b/app/src/main/java/com/aoleyun/sn/comm/PackageNames.java
@@ -16,7 +16,7 @@ public class PackageNames {
public static final String NOTIFICATIONS = "com.aoleyun.info";
public static final String BROWSER = "com.aoleyun.browser";
public static final String AILOG = "com.aoleyun.ailog";
- public static final String APP_STORE_BOOTRECEIVER = "com.aoleyun.appstore.receiver.BootReceiver";
+// public static final String APP_STORE_BOOTRECEIVER = "com.aoleyun.appstore.receiver.BootReceiver";
public static final String LEARNING_DESKTOP = "com.aoleyunos.dop2";
public static final String YIXUEPAI_DESKTOP = "com.ygyb.yischool";
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 79c7479..8eb2736 100644
--- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java
+++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java
@@ -35,6 +35,7 @@ import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.Batch;
import com.aoleyun.sn.bean.BatteryInfo;
+import com.aoleyun.sn.bean.BlacklistBean;
import com.aoleyun.sn.bean.BrowserBookmarks;
import com.aoleyun.sn.bean.BrowserData;
import com.aoleyun.sn.bean.CustomROMApp;
@@ -67,6 +68,7 @@ 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.AppSettingApi;
+import com.aoleyun.sn.network.api.get.BlackListApi;
import com.aoleyun.sn.network.api.get.CheckTestUpdateApi;
import com.aoleyun.sn.network.api.get.CloudLessonApi;
import com.aoleyun.sn.network.api.get.CloudLessonAppApi;
@@ -743,6 +745,12 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
+ public Observable> getBlackListObservable() {
+ return mRetrofit.create(BlackListApi.class)
+ .getBlackList(Utils.getSerial(mContext))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread());
+ }
/*
*
@@ -863,7 +871,7 @@ public class NetInterfaceManager {
void onComplete();
}
- synchronized public void checkAoleyunUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) {
+ public void checkAoleyunUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) {
ConnectMode connectMode = ConnectMode.ONE_HOUR;
if (refresh) {
connectMode = ConnectMode.DEFAULT;
@@ -897,7 +905,7 @@ public class NetInterfaceManager {
* @param lifecycle
* @param callback
*/
- synchronized public void checkAoleyunUpdate(BehaviorSubject lifecycle, onCompleteCallback callback) {
+ public void checkAoleyunUpdate(BehaviorSubject lifecycle, onCompleteCallback callback) {
Observable> infoUpdateObservable = NetInterfaceManager.getInstance()
.getUpdateApi().getUpdate(BuildConfig.APPLICATION_ID, JGYUtils.getInstance().checkAppPlatform());
Observable> storeUpdateObservable = NetInterfaceManager.getInstance()
@@ -992,7 +1000,7 @@ public class NetInterfaceManager {
void onUpdate(List appUpdateInfos);
}
- synchronized public void checkAoleyunUpdate(BehaviorSubject lifecycle, UpdateCallback callback) {
+ public void checkAoleyunUpdate(BehaviorSubject lifecycle, UpdateCallback callback) {
Observable> infoUpdateObservable = NetInterfaceManager.getInstance()
.getUpdateApi().getUpdate(BuildConfig.APPLICATION_ID, JGYUtils.getInstance().checkAppPlatform());
Observable> storeUpdateObservable = NetInterfaceManager.getInstance()
@@ -1166,7 +1174,7 @@ public class NetInterfaceManager {
}
public void getForceDownload(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) {
- ConnectMode connectMode = ConnectMode.ONE_MINUTE;
+ ConnectMode connectMode = ConnectMode.DEFAULT;
if (refresh) {
connectMode = ConnectMode.DEFAULT;
}
@@ -1722,9 +1730,9 @@ public class NetInterfaceManager {
}
public void getAppAutoStartUpdateAndNet(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) {
- ConnectMode connectMode = ConnectMode.ONE_HOUR;
+ ConnectMode connectMode = ConnectMode.DEFAULT;
if (refresh) {
- connectMode = ConnectMode.ONE_MINUTE;
+ connectMode = ConnectMode.DEFAULT;
}
if (ConnectManager.getInstance().isNeedConnect(UrlAddress.NET_AND_LAUNCH_API, connectMode)) {
getAppAutoStartUpdateAndNet(lifecycle, callback);
@@ -2225,6 +2233,12 @@ public class NetInterfaceManager {
if (TextUtils.isEmpty(default_launcher)) {
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform) {
JGYUtils.getInstance().setDop7DefaultDesktop();
+ } else if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform) {
+ JGYUtils.getInstance().setJXWDefaultDesktop();
+// } else if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZhanruiPlatform) {
+// JGYUtils.getInstance().setJXWDefaultDesktop();
+ } else if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform) {
+ JGYUtils.getInstance().setAiuduDefaultDesktop();
} else {
JGYUtils.getInstance().setDefaultDesktop();
}
@@ -3685,8 +3699,7 @@ public class NetInterfaceManager {
}
public void getAppAutoStartUpdateAndNet(List appListInfos) {
- NetInterfaceManager.getInstance()
- .getAppAutoStartUpdateAndNetObservable()
+ getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@@ -3719,8 +3732,7 @@ public class NetInterfaceManager {
}
public void getNetAndLaunchSetting() {
- NetInterfaceManager.getInstance()
- .getAppAutoStartUpdateAndNetObservable()
+ getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@@ -4334,4 +4346,66 @@ public class NetInterfaceManager {
}
};
}
+
+ public void getBlackList(BehaviorSubject lifecycle, onCompleteCallback callback) {
+ NetInterfaceManager.getInstance().getBlackListObservable()
+ .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
+ .subscribe(getBlackListObserver(callback));
+ }
+
+ public void getBlackList(onCompleteCallback callback) {
+ NetInterfaceManager.getInstance().getBlackListObservable()
+ .subscribe(getBlackListObserver(callback));
+ }
+
+ public void getBlackList() {
+ NetInterfaceManager.getInstance().getBlackListObservable()
+ .subscribe(getBlackListObserver(null));
+ }
+
+ public Observer> getBlackListObserver(onCompleteCallback callback) {
+ return new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("getBlackList", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse blacklistBeanBaseResponse) {
+ Log.e("getBlackList", "onNext: " + blacklistBeanBaseResponse);
+ if (blacklistBeanBaseResponse.code == 200) {
+ BlacklistBean blacklistBean = blacklistBeanBaseResponse.data;
+ if (blacklistBean == null) {
+ Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, "");
+ } else {
+ List strings = blacklistBean.getBlacklist();
+ if (strings == null || strings.isEmpty()) {
+ Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, "");
+ } else {
+ Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings));
+ }
+ }
+ } else {
+ Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, "");
+ }
+
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("getBlackList", "onError: " + e.getMessage());
+ onComplete();
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("getBlackList", "onComplete: ");
+ 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 21a6e11..183be69 100644
--- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java
+++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java
@@ -106,6 +106,8 @@ public class UrlAddress {
public static final String GET_POWEROFF_TIME = "And/getTimedShutdown";
/*获取管控APP设置*/
public static final String APP_SETTING = "android/sn-control/app-setting";
+ /*获取设备批次全局黑名单*/
+ public static final String BLACKLIST = "android/common/blacklist";
/**
* 浏览器策略
diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/BlackListApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/BlackListApi.java
new file mode 100644
index 0000000..a43ba3d
--- /dev/null
+++ b/app/src/main/java/com/aoleyun/sn/network/api/get/BlackListApi.java
@@ -0,0 +1,16 @@
+package com.aoleyun.sn.network.api.get;
+
+import com.aoleyun.sn.bean.BaseResponse;
+import com.aoleyun.sn.bean.BlacklistBean;
+import com.aoleyun.sn.network.UrlAddress;
+
+import io.reactivex.rxjava3.core.Observable;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+public interface BlackListApi {
+ @GET(UrlAddress.BLACKLIST)
+ Observable> getBlackList(
+ @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 94c6b8b..c5ad497 100644
--- a/app/src/main/java/com/aoleyun/sn/push/PushManager.java
+++ b/app/src/main/java/com/aoleyun/sn/push/PushManager.java
@@ -248,6 +248,10 @@ public class PushManager {
/*绑定设备*/
private static final String BIND_DEVICE = "71";
+ /*打开应用*/
+ private static final String OPEN_APK = "73";
+ /*全局黑名单*/
+ private static final String GLOBAL_BALCK_LIST = "74";
public void setPushContent(String title, String extras) {
@@ -646,6 +650,12 @@ public class PushManager {
case BIND_DEVICE:
bindService(extras);
break;
+ case OPEN_APK:
+ openApk(extras);
+ break;
+ case GLOBAL_BALCK_LIST:
+ NetInterfaceManager.getInstance().getBlackList();
+ break;
default:
}
}
@@ -874,7 +884,7 @@ public class PushManager {
String allow = jSONObject.get("not").getAsString();
HashSet disallowApp = new HashSet<>(Arrays.asList(disallow.split(",")));
HashSet allowApp = new HashSet<>(Arrays.asList(allow.split(",")));
- JGYUtils.setAppNetwork(mContext, disallowApp, allowApp);
+ JGYUtils.getInstance().setAppNetwork(mContext, disallowApp, allowApp);
}
private void settingPowerOn(String s) {
@@ -1323,9 +1333,9 @@ public class PushManager {
pkgs.remove(pkg);
Log.e(TAG, "orderDeleteApp: pkgs = " + pkgs);
mMMKV.encode(DEBUG_APP_LIST, pkgs);
- if (ApkUtils.isSystemApp(mContext,pkg)){
+ if (ApkUtils.isSystemApp(mContext, pkg)) {
JGYUtils.getInstance().hideApp(pkg);
- }else {
+ } else {
ApkUtils.UninstallAPP(mContext, pkg);
}
}
@@ -1490,4 +1500,10 @@ public class PushManager {
intent.setPackage("com.teclast.zyos");
mContext.sendBroadcast(intent);
}
+
+ private void openApk(String extras) {
+ JsonObject jsonObject = GsonUtils.getJsonObject(extras);
+ String app_package = jsonObject.get("app_package").getAsString();
+ ApkUtils.openPackage(mContext, app_package);
+ }
}
diff --git a/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java b/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java
index aef356a..24dd341 100644
--- a/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java
+++ b/app/src/main/java/com/aoleyun/sn/receiver/BootReceiver.java
@@ -22,7 +22,7 @@ import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class BootReceiver extends BroadcastReceiver {
- private static String TAG = BootReceiver.class.getSimpleName() + ":myappstore";
+ private static String TAG = BootReceiver.class.getSimpleName() + ":aoleyunsn";
public static final String BOOT_COMPLETED = "aoleyun.intent.action.BOOT_COMPLETED";
static {
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 3d736ce..65aac1a 100644
--- a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java
+++ b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java
@@ -103,7 +103,8 @@ public class NewAppReceiver extends BroadcastReceiver {
@Override
public void onNext(@NonNull String s) {
Log.e("sendAppInfo", "onNext: " + s);
- JGYUtils.getInstance().checkForceDownload();
+// JGYUtils.getInstance().checkForceDownload();
+ NetInterfaceManager.getInstance().getForceDownload();
JGYUtils.getInstance().updateNetworkWhiteList();
NetInterfaceManager.getInstance().getAppLimit();
NetInterfaceManager.getInstance().getDefaultDesktop();
diff --git a/app/src/main/java/com/aoleyun/sn/service/GuardService.java b/app/src/main/java/com/aoleyun/sn/service/GuardService.java
index bca4024..2184687 100644
--- a/app/src/main/java/com/aoleyun/sn/service/GuardService.java
+++ b/app/src/main/java/com/aoleyun/sn/service/GuardService.java
@@ -297,12 +297,13 @@ public class GuardService extends Service {
/*在8.0以上 除了开机广播其他广播基本上没有用
*当静默安装升级时,app不会被唤醒,只有通过显示广播唤醒
* */
- Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
- intent1.setComponent(new ComponentName(PackageNames.APPSTORE, PackageNames.APP_STORE_BOOTRECEIVER));
- // 携带数据
- //intent1.putExtra("test", "我是来测 A 应用的Android 8.0 系统静态广播的测试数据");
- // 启动发送广播
- sendBroadcast(intent1);
+// Intent intent1 = new Intent(BootReceiver.BOOT_COMPLETED);
+// intent1.setComponent(new ComponentName(PackageNames.APPSTORE, PackageNames.APP_STORE_BOOTRECEIVER));
+// // 携带数据
+// //intent1.putExtra("test", "我是来测 A 应用的Android 8.0 系统静态广播的测试数据");
+// // 启动发送广播
+// sendBroadcast(intent1);
+
JGYUtils.startServices(GuardService.this);
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZhanruiPlatform) {
int setting_statusbar = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0);
@@ -330,7 +331,7 @@ public class GuardService extends Service {
long time = System.currentTimeMillis();
getLockState("1", String.valueOf(time));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- JGYUtils.getInstance().wakeUpAoleyunAPP();
+// JGYUtils.getInstance().wakeUpAoleyunAPP();
JGYUtils.getInstance().deleteScreenshots();
}
// sendScreenStatus(2);
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 cfa866a..c82c418 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
@@ -87,8 +87,11 @@ public class MainSContact {
void getEbagCode();
/*获取学习应用*/
void getExclusiveAdminApp();
+ /*获取全局黑名单*/
+ void getBlackList();
/*获取wifi密码*/
void getWiFiPasswd();
+
}
public interface MainView extends BaseView {
@@ -166,6 +169,8 @@ public class MainSContact {
/*获取学习应用*/
void getExclusiveAdminAppFinish();
/*获取wifi密码结束*/
+ void getBlackListFinish();
+ /*获取wifi密码结束*/
void setWiFiPasswd();
}
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 ad3a3a5..2ac1b58 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
@@ -11,6 +11,7 @@ import com.alibaba.sdk.android.push.CommonCallback;
import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
import com.aoleyun.sn.bean.AdminAppInfo;
import com.aoleyun.sn.bean.BaseResponse;
+import com.aoleyun.sn.bean.BlacklistBean;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
@@ -584,12 +585,12 @@ public class MainSPresenter implements MainSContact.Presenter {
.subscribe(new Observer>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
- Log.e("getAdminApp", "onSubscribe: ");
+ Log.e("getExclusiveAdminApp", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse> listBaseResponse) {
- Log.e("getAdminApp", "onNext: " + listBaseResponse);
+ Log.e("getExclusiveAdminApp", "onNext: " + listBaseResponse);
if (listBaseResponse.code == 200) {
List adminAppInfos = listBaseResponse.data;
JGYUtils.getInstance().installAdminApp(adminAppInfos);
@@ -598,18 +599,28 @@ public class MainSPresenter implements MainSContact.Presenter {
@Override
public void onError(@NonNull Throwable e) {
- Log.e("getAdminApp", "onError: " + e.getMessage());
+ Log.e("getExclusiveAdminApp", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
- Log.e("getAdminApp", "onComplete: ");
+ Log.e("getExclusiveAdminApp", "onComplete: ");
mView.getExclusiveAdminAppFinish();
}
});
}
+ @Override
+ public void getBlackList() {
+ NetInterfaceManager.getInstance().getBlackList(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
+ @Override
+ public void onComplete() {
+ mView.getBlackListFinish();
+ }
+ });
+ }
+
@Override
public void getWiFiPasswd() {
NetInterfaceManager.getInstance()
@@ -620,4 +631,6 @@ public class MainSPresenter implements MainSContact.Presenter {
}
});
}
+
+
}
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 af7285a..ce2220f 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
@@ -186,6 +186,49 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
});
}
+ private static KillAppListener killAppListener;
+
+ public interface KillAppListener {
+ void killApp(String action);
+ }
+
+ private final ObservableOnSubscribe killSubscribe = new ObservableOnSubscribe() {
+ @Override
+ public void subscribe(ObservableEmitter emitter) throws Exception {
+ killAppListener = new KillAppListener() {
+ @Override
+ public void killApp(String action) {
+ emitter.onNext(action);
+ }
+ };
+ }
+ };
+
+ private Observer killObserver = new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ Log.e("killObserver", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(String action) {
+ Log.e("killObserver", "onNext: " + action);
+ JGYUtils.getInstance().killPackage(PackageNames.APPSTORE);
+ JGYUtils.getInstance().killPackage(PackageNames.NOTIFICATIONS);
+ JGYUtils.getInstance().killPackage(PackageNames.AILOG);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ Log.e("killObserver", "onError: " + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("killObserver", "onComplete: ");
+ }
+ };
+
private final BehaviorSubject lifecycleSubject = BehaviorSubject.create();
@Override
@@ -322,6 +365,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
checkAliyunPushStatus();
break;
case Intent.ACTION_SCREEN_OFF:
+ killAppListener.killApp(action);
break;
default:
break;
@@ -329,6 +373,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
}
+
private void checkAliyunPushStatus() {
CloudPushService mPushService = PushServiceFactory.getCloudPushService();
mPushService.checkPushChannelStatus(new CommonCallback() {
@@ -505,6 +550,10 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
mMMKV.encode(CommonConfig.DEVICES_FRIST_START, 1);
+ Observable.create(killSubscribe)
+ .throttleLast(30, TimeUnit.SECONDS)
+// .throttleLast(3, TimeUnit.SECONDS)
+ .subscribe(killObserver);
}
@Override
@@ -911,7 +960,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
}
- synchronized private void setFloatingWindow() {
+ private void setFloatingWindow() {
Log.e(TAG, "setFloatingWindow: ");
long nowTime = System.currentTimeMillis();
mTopApp.open(nowTime);
@@ -1033,7 +1082,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
* @param pkg 包名
*/
@SuppressLint("NewApi")
- synchronized private void installApkByPackage(String filePath, String pkg) {
+ private void installApkByPackage(String filePath, String pkg) {
String oldListString = Settings.System.getString(getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID);
HashSet packageList = new HashSet<>(Arrays.asList(oldListString.split(",")));
if (!packageList.contains(pkg)) {
@@ -1266,17 +1315,24 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void getEbagCodeFinish(boolean activation) {
if (activation) {
- mPresenter.getExclusiveAdminApp();
+// mPresenter.getExclusiveAdminApp();
Log.e(TAG, "getEBagCodeFinish: " + "已激活");
} else {
- mPresenter.getWiFiPasswd();
+// mPresenter.getBlackList();
Log.e(TAG, "getEBagCodeFinish: " + "未激活");
}
+ mPresenter.getBlackList();
}
+ @Deprecated
@Override
public void getExclusiveAdminAppFinish() {
Log.e(TAG, "getAdminAppFinish: ");
+ }
+
+ @Override
+ public void getBlackListFinish() {
+ Log.e(TAG, "getBlackListFinish: ");
mPresenter.getWiFiPasswd();
}
@@ -1284,4 +1340,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
public void setWiFiPasswd() {
Log.e(TAG, "setWiFiPasswd: ");
}
+
+
}
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 c9fc7f8..a74de8c 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/ApkUtils.java
@@ -82,6 +82,7 @@ public class ApkUtils {
this.add("com.qunyu.dividedroad");
this.add("com.ygyb.yischool");
this.add("com.yxxmk.uiui");
+ this.add("com.yxxmk.uiuios");
this.add("com.uiui.floatwindow");
this.add("com.uiuipad.find");
this.add("com.uiuipad.appstore");
@@ -94,6 +95,9 @@ public class ApkUtils {
this.add("com.ttstd.ttutils");
this.add("com.ttstd.qin");
this.add("com.uiuios.ailog");
+
+ this.add("com.android.documentsui");
+ this.add("com.android.settings");
}};
/**
@@ -143,7 +147,7 @@ public class ApkUtils {
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.documentsui");
this.add("com.android.externalstorage");
this.add("com.mediatek.ygps");
this.add("com.mediatek.simprocessor");
@@ -246,7 +250,7 @@ public class ApkUtils {
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.android.settings");
this.add("com.google.android.inputmethod.pinyin");
this.add("com.android.theme.icon_pack.filled.launcher");
this.add("com.android.networkstack.permissionconfig");
@@ -422,6 +426,16 @@ public class ApkUtils {
}};
+ public static final Set yixuepaiApp = new HashSet() {{
+ this.add("com.qi.airoom");
+ this.add("com.qi.AiStudyRoom");
+ this.add("com.eusoft.eudic");
+ this.add("com.fenbi.android.solar");
+ this.add("com.eduyun.app.factory.ykt");
+ this.add("com.yaerxing.fkst");
+ this.add("com.jxw.usagedate");
+ }};
+
/**
* 学习桌面和九学王app
@@ -481,7 +495,14 @@ public class ApkUtils {
this.add("com.jxw.souti");
this.add("com.jxw.xdfzq");
- this.add("com.uiui.zysn");
+ }};
+
+ public static final Set G11Pkgs = new HashSet() {{
+ /*G11 平台*/
+ this.add("com.lhcx.drawing");
+ this.add("com.dingwei.htbtool");
+ this.add("com.tencent.wemeet.app");
+ this.add("net.xmind.doughnut");
}};
/**
@@ -1406,6 +1427,7 @@ public class ApkUtils {
this.add("com.alarmclock.uiui");
this.add("com.uiui.speed");
this.add("com.books.wisdom");
+
}};
@@ -1429,10 +1451,14 @@ public class ApkUtils {
//排除所有系统应用,不显示
if (isSystemApp(context, packageName)) {
if (!AoleyunOSApp.contains(packageName)
+ && !aoleyunAPP.contains(packageName)
&& !aihuaApp.contains(packageName)
&& !dongwa.contains(packageName)
+ && !yixuepaiApp.contains(packageName)
+ && !mJxwApp.contains(packageName)
&& !allPkgSet.contains(packageName)
) {
+ Log.e(TAG, "getRunningAppInfo: continue = " + packageName);
continue;
}
} else {
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 023224c..8f6521b 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/JGYUtils.java
@@ -57,7 +57,6 @@ import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.UrlAddress;
import com.aoleyun.sn.receiver.BootReceiver;
import com.aoleyun.sn.service.GuardService;
-import com.aoleyun.sn.service.LogcatService;
import com.aoleyun.sn.service.StepService;
import com.aoleyun.sn.service.main.MainService;
import com.blankj.utilcode.util.FileUtils;
@@ -77,7 +76,6 @@ import com.tencent.mmkv.MMKV;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
@@ -87,9 +85,6 @@ import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
-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.Enumeration;
@@ -534,8 +529,7 @@ public class JGYUtils {
*
* @param netAndLaunchBean
*/
- @SuppressLint("NewApi")
- synchronized public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean, List appListInfos) {
+ public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean, List appListInfos) {
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString());
Log.e(TAG, "setNetAndlaunch: ");
HashSet autoLaunchApp = new HashSet<>();//开机自启app
@@ -663,8 +657,7 @@ public class JGYUtils {
}
}
- @SuppressLint("NewApi")
- synchronized public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) {
+ public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) {
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString());
Log.e(TAG, "setNetAndlaunch: ");
HashSet autoLaunchApp = new HashSet<>();//开机自启app
@@ -772,31 +765,33 @@ public class JGYUtils {
}
}
- @SuppressLint("NewApi")
- synchronized public static void setAppNetwork(Context context, HashSet blackList, HashSet whiteList) {
+ public void setAppNetwork(Context context, HashSet blackList, HashSet whiteList) {
ContentResolver contentResolver = context.getContentResolver();
- Log.e(TAG, "setAppNetwork: " + "设置应用联网管控" + blackList);
+ Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 blackList =" + blackList);
+ Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 whiteList =" + whiteList);
if (!MTK11Tag.equals(JGYUtils.getInstance().getAppPlatform())) {
if (blackList == null || blackList.size() == 0) {
- SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, "");
+// SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, "");
Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, "");
} else {
String net_not = String.join(",", blackList);
- SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not);
+// SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not);
Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, net_not);
Log.e(TAG, "setAppNetwork: " + net_not);
}
}
+ mMMKV.encode(CommonConfig.AOLE_ACTION_NETWORK_ALLOW, whiteList);
if (whiteList == null || whiteList.size() == 0) {
- SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
-// Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
+ Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
} else {
+ // TODO: 2024/6/28 暂时所有的都为白名单
+ Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
+
String net_not = String.join(",", whiteList);
- SPUtils.put(context, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, net_not);
Log.e(TAG, "setAppNetwork: net_not = " + net_not);
- List filterList = whiteList.stream().filter(s -> !ApkUtils.isAvailable(context, s)).collect(Collectors.toList());
+ List filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(context, s)).collect(Collectors.toList());
if (filterList.size() == 0) {
// Settings.System.putString(contentResolver, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
} else {
@@ -815,13 +810,13 @@ public class JGYUtils {
}
public void updateNetworkWhiteList() {
- String whiteString = (String) SPUtils.get(mContext, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
- if (TextUtils.isEmpty(whiteString)) {
+ Set pkgs = mMMKV.decodeStringSet(CommonConfig.AOLE_ACTION_NETWORK_ALLOW, new HashSet<>());
+ if (pkgs.isEmpty()) {
Log.e(TAG, "updateNetworkWhiteList: allow content is empty");
return;
}
- List whiteList = new ArrayList<>(Arrays.asList(whiteString.split(",")));
- List filterList = whiteList.stream().filter(s -> !ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList());
+ List whiteList = new ArrayList<>(pkgs);
+ List filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList());
if (filterList.size() == 0) {
// Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, "");
} else {
@@ -830,8 +825,7 @@ public class JGYUtils {
Log.e(TAG, "updateNetworkWhiteList: " + filterList);
}
- @SuppressLint("NewApi")
- synchronized public void onBootSendNetwork() {
+ public void onBootSendNetwork() {
if (!MTK11Tag.equals(JGYUtils.getInstance().getAppPlatform())) {
String oldBlackListString = (String) SPUtils.get(mContext, CommonConfig.AOLE_ACTION_NETWORK_DISALLOW, "");
HashSet oldBlackListSet = new HashSet<>(Arrays.asList(oldBlackListString.split(",")));
@@ -897,7 +891,7 @@ public class JGYUtils {
}
}
- synchronized public void setAppinsideWeb(BaseResponse> response) {
+ public void setAppinsideWeb(BaseResponse> response) {
if (response.code == 200) {
List appgrounds = response.data;
if (appgrounds != null && appgrounds.size() > 0) {
@@ -951,7 +945,7 @@ public class JGYUtils {
/**
* @param response 黑白名单都可以管控
*/
- synchronized public void setNewAppinsideWeb(BaseResponse response) {
+ public void setNewAppinsideWeb(BaseResponse response) {
Log.e(TAG, "setNewAppinsideWeb: " + "应用内部联网管控: " + response);
if (response.code == 200) {
String jsonString = GsonUtils.toJSONString(response.data);
@@ -989,7 +983,7 @@ public class JGYUtils {
// public static final String JGY_APPINSIDE_FIRST_WRITE = "JGY_APPINSIDE_FIRST_WRITE";
@SuppressLint("NewApi")
- synchronized private void setWhiteApp(List appgrounds) {
+ private void setWhiteApp(List appgrounds) {
//去重
List ttAppgrounds = appgrounds.stream().distinct().collect(Collectors.toList());
List old = getOldWhitelist();
@@ -997,7 +991,7 @@ public class JGYUtils {
setWhiteList(ttAppgrounds);
}
- synchronized private void comparedAppground(List oldAppgrounds, List newAppgrounds) {
+ private void comparedAppground(List oldAppgrounds, List newAppgrounds) {
List addAppgrounds = new ArrayList<>();
List deleteAppgrounds = new ArrayList<>();
List changedAppgrounds = new ArrayList<>();
@@ -1131,7 +1125,7 @@ public class JGYUtils {
/**
* @param pkg 开启app白名单
*/
- synchronized private void addPackage(String pkg) {
+ private void addPackage(String pkg) {
Log.e(TAG, "addPackage: " + pkg);
Intent intent26 = new Intent();
intent26.setAction("qch_app_inside_website");
@@ -1144,7 +1138,7 @@ public class JGYUtils {
* @param pkg
* @param urls 添加app白名单
*/
- synchronized private void addToWhitelist(String pkg, String urls) {
+ private void addToWhitelist(String pkg, String urls) {
if (TextUtils.isEmpty(urls)) {
Log.e(TAG, "addToWhitelist: " + "urls is NULL");
return;
@@ -1169,7 +1163,7 @@ public class JGYUtils {
* @param pkg
* @param urls 删除某个app 内某个白名单
*/
- synchronized private void deleteWhitelistUrl(String pkg, String urls) {
+ private void deleteWhitelistUrl(String pkg, String urls) {
if (TextUtils.isEmpty(urls)) {
Log.e(TAG, "addToWhitelist: " + "urls is NULL");
return;
@@ -1192,7 +1186,7 @@ public class JGYUtils {
/**
* @param pkg 开启和关闭白名单管控都需要发送
*/
- synchronized private void deleteOtherAppWhitelist(String pkg) {
+ private void deleteOtherAppWhitelist(String pkg) {
Log.e(TAG, "disableAppWhitelist: " + pkg);
Intent intent24 = new Intent();
intent24.setAction("qch_app_setDelAppWhitUid");
@@ -1204,7 +1198,7 @@ public class JGYUtils {
/**
* @param appgrounds 设置黑名单管控
*/
- synchronized private void setBlackApp(List appgrounds) {
+ private void setBlackApp(List appgrounds) {
Log.e(TAG, "setBlackApp: " + appgrounds);
StringBuilder blackList = new StringBuilder();
StringBuilder packageList = new StringBuilder();//单条管控名单
@@ -1244,7 +1238,7 @@ public class JGYUtils {
}
}
- synchronized private static void sendAllweb(Context context) {
+ private static void sendAllweb(Context context) {
Log.e(TAG, "sendAllweb: ");
Intent intent = new Intent("qch_app_website")
.setPackage("com.android.settings");
@@ -1252,7 +1246,7 @@ public class JGYUtils {
context.sendBroadcast(intent);
}
- synchronized private static void sendwebUrl(Context context) {
+ private static void sendwebUrl(Context context) {
Log.e(TAG, "sendwebUrl: ");
Intent intent = new Intent("qch_app_inside_website")
.setPackage("com.android.settings");
@@ -1260,7 +1254,7 @@ public class JGYUtils {
context.sendBroadcast(intent);
}
- synchronized public void SettingSysData(String data) {
+ public void SettingSysData(String data) {
SPUtils.put(mContext, "SystemSettingData", data);
if (TextUtils.isEmpty(data)) {
Log.e(TAG, "SettingSysData: " + "data is empty");
@@ -1292,11 +1286,16 @@ public class JGYUtils {
this.add("com.notepad.uiui");
this.add("com.calendar.uiui");
this.add("com.alarmclock.uiui");
- this.add("com.uiui.videoplayer");
+// this.add("com.uiui.videoplayer");
this.add("com.ygyb.yischool");
this.add("com.books.wisdom");
this.add("com.qi.airoom");
this.add("com.qi.AiStudyRoom");
+ this.add("com.eusoft.eudic");
+ this.add("com.fenbi.android.solar");
+ this.add("com.eduyun.app.factory.ykt");
+ this.add("com.yaerxing.fkst");
+ this.add("com.jxw.usagedate");
}};
private Set getWhitePkgList() {
@@ -1315,6 +1314,9 @@ public class JGYUtils {
if ("G23".equals(Build.MODEL)) {
pkgSet.addAll(ApkUtils.zhengwu);
}
+ if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform) {
+ pkgSet.addAll(ApkUtils.G11Pkgs);
+ }
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform) {
pkgSet.add("com.tencent.wemeet.app");
}
@@ -1362,19 +1364,20 @@ public class JGYUtils {
}
public void checkForceDownload() {
- String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST);
- //为 "" 是已经请求成功的
- if (jsonString == null) {
- NetInterfaceManager.getInstance().getForceDownload();
- } else {
- Gson gson = new Gson();
- Type listType = new TypeToken>() {
- }.getType();
- List forceDownloadData = gson.fromJson(jsonString, listType);
- if (forceDownloadData != null) {
- JGYUtils.getInstance().forceDownload(forceDownloadData);
- }
- }
+// String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST);
+// //为 "" 是已经请求成功的
+// if (jsonString == null) {
+// NetInterfaceManager.getInstance().getForceDownload();
+// } else {
+// Gson gson = new Gson();
+// Type listType = new TypeToken>() {
+// }.getType();
+// List forceDownloadData = gson.fromJson(jsonString, listType);
+// if (forceDownloadData != null) {
+// JGYUtils.getInstance().forceDownload(forceDownloadData);
+// }
+// }
+ NetInterfaceManager.getInstance().getForceDownload();
}
@@ -2009,6 +2012,7 @@ public class JGYUtils {
public void killPackage(String pkg) {
+ Log.e(TAG, "killPackage: " + pkg);
ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
manager.killBackgroundProcesses(pkg);
CmdUtil.execute("am force-stop " + pkg);
@@ -2329,12 +2333,13 @@ public class JGYUtils {
context.startService(new Intent(context, MainService.class));
context.startService(new Intent(context, StepService.class));
context.startService(new Intent(context, GuardService.class));
- context.startService(new Intent(context, LogcatService.class));
+// context.startService(new Intent(context, LogcatService.class));
}
}
private String Launcher3 = "com.android.launcher3";
private String Launcher3Class = "com.android.launcher3.Launcher";
+ private String Launcher3QuickstepClass = "com.android.launcher3.uioverrides.QuickstepLauncher";
private String AoleyunOs = "com.aoleyun.os";
private String AoleyunOsClass = "com.aoleyun.os.Launcher";
@@ -2407,6 +2412,12 @@ public class JGYUtils {
if (TextUtils.isEmpty(pkg)) {
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.YXPD1Platform) {
JGYUtils.getInstance().setDop7DefaultDesktop();
+ } else if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.G11Platform) {
+ JGYUtils.getInstance().setJXWDefaultDesktop();
+// } else if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZhanruiPlatform) {
+// JGYUtils.getInstance().setJXWDefaultDesktop();
+ } else if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AUDG104Platform) {
+ JGYUtils.getInstance().setAiuduDefaultDesktop();
}
} else {
if (pkg.equalsIgnoreCase(desktopPkg)) {
@@ -2438,29 +2449,45 @@ public class JGYUtils {
* 设置奥乐云桌面为默认
*/
public void setDefaultDesktop() {
+ Log.e(TAG, "setDefaultDesktop: ");
setDefaultDesktop(PackageNames.DESKTOP);
}
public void setYxpDefaultDesktop() {
+ Log.e(TAG, "setYxpDefaultDesktop: ");
setDefaultDesktop(PackageNames.YIXUEPAI_DESKTOP);
}
public void setDop7DefaultDesktop() {
+ Log.e(TAG, "setDop7DefaultDesktop: ");
setDefaultDesktop("com.aoleyunos.dop7");
}
+ public void setJXWDefaultDesktop() {
+ Log.e(TAG, "setJXWDefaultDesktop: ");
+ setDefaultDesktop("com.jxw.launcher");
+ }
+
+ public void setAiuduDefaultDesktop() {
+ Log.e(TAG, "setAiuduDefaultDesktop: ");
+// setDefaultDesktop("com.aoleyun.audos");
+// setLauncher3();
+ setDefaultDesktop(Launcher3, Launcher3QuickstepClass);
+
+ }
+
/**
* 设置默认桌面
*
* @param pkg
*/
public void setDefaultDesktop(String pkg) {
- Log.e(TAG, "setDefaultDesktop: " + pkg);
+ Log.e(TAG, "setDefaultDesktop: pkg = " + pkg);
if (TextUtils.isEmpty(pkg)) {
setLauncher3();
} else {
String className = getStartClassName(pkg);
- Log.e(TAG, "setDefaultDesktop: " + className);
+ Log.e(TAG, "setDefaultDesktop: className = " + className);
if (TextUtils.isEmpty(className)) {
setLauncher3();
} else {
@@ -2479,14 +2506,18 @@ public class JGYUtils {
}
}
- private void setLauncher3() {
+ public void setLauncher3() {
if (ApkUtils.isAvailable(mContext, AoleyunOs)
|| "C2".equals(Build.MODEL)) {
setDefaultDesktop(AoleyunOs, AoleyunOsClass);
} else if ("Aiud_A8_ag_1095".equals(Build.MODEL)) {
setDefaultDesktop(AiUDuOs, AiUDuOsClass);
} else {
- setDefaultDesktop(Launcher3, Launcher3Class);
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) {
+ setDefaultDesktop(Launcher3, Launcher3QuickstepClass);
+ } else {
+ setDefaultDesktop(Launcher3, Launcher3Class);
+ }
}
}
@@ -2544,7 +2575,7 @@ public class JGYUtils {
} else {
//爱华设置,暂时屏蔽
// setDefaultLauncher(mContext, pkg, className);
- Log.e(TAG, "setDefaultDesktop: setDefaultLauncher: " + pkg);
+ Log.e(TAG, "setDefaultDesktop: setDefaultLauncher: pkg = " + pkg);
}
// String oldDesktop = (String) SPUtils.get(mContext, "default_launcher", "");
// if (Objects.equals(oldDesktop, pkg)) {
@@ -2569,10 +2600,42 @@ public class JGYUtils {
Log.e(TAG, "setDefaultDesktop: " + pkg + ":" + className);
Log.e(TAG, "setDefaultDesktop: " + "persist.sys.launcher.pkgname = " + SystemProperties.get("persist.sys.launcher.pkgname"));
Log.e(TAG, "setDefaultDesktop: " + "persist.sys.launcher.classname = " + SystemProperties.get("persist.sys.launcher.classname"));
-
+ Log.e(TAG, "setDefaultDesktop: getDefaultLaunchers = " + getDefaultLaunchers());
setDefaultLauncher(new ComponentName(pkg, className));
}
+ public Set getDefaultLaunchers() {
+ Set defaultLaunchers = new HashSet();
+ PackageManager packageManager = mContext.getPackageManager();
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_HOME);
+ // 查询所有已安装的桌面应用
+ List launcherList = packageManager.queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY);
+ // 获取默认的桌面应用,没有指定默认桌面时返回"android"
+ ResolveInfo defaultLauncher = packageManager.resolveActivity(intent,
+ PackageManager.MATCH_DEFAULT_ONLY);
+ if (launcherList != null && defaultLauncher != null) {
+ String pkgName = defaultLauncher.activityInfo.packageName;
+ Log.e("getDefaultLaunchers", "default launcher is : " + pkgName);
+ // 没有指定默认桌面时返回的是"android",故这里过滤下防止"android"被添加到默认桌面列表中
+ for (ResolveInfo info : launcherList) {
+ Log.e("getDefaultLaunchers", "launcher : " + info.activityInfo.packageName);
+ if (info.activityInfo.packageName.equals(pkgName)) {
+ defaultLaunchers.add(pkgName);
+ }
+ }
+ }
+ // 有多个桌面应用,且目前没有指定默认桌面时,返回所有的桌面应用
+ if (defaultLaunchers.isEmpty() && launcherList != null) {
+ for (ResolveInfo resolveInfo : launcherList) {
+ defaultLaunchers.add(resolveInfo.activityInfo.packageName);
+ }
+ }
+ Log.e("getDefaultLaunchers", "defaultLaunchers : " + defaultLaunchers);
+ return defaultLaunchers;
+ }
+
public String getMacJson(Context context) {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("sn", Utils.getSerial(context));
@@ -2800,9 +2863,10 @@ public class JGYUtils {
mContext.sendBroadcast(bootIntent);
}
+ @Deprecated
public void wakeUpAoleyunAPP() {
- wakeUpAppstore();
- wakeUpNotify();
+// wakeUpAppstore();
+// wakeUpNotify();
}
public static String getModel() {
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 43f5f21..e0bfd8f 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/SysSettingUtils.java
@@ -6,27 +6,29 @@ import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
import android.cube.SuperPower;
-import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.activity.main.MainActivity;
+import com.aoleyun.sn.bean.BluetoothType;
import com.aoleyun.sn.bean.SnSetting;
import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.gson.GsonUtils;
+import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
+import com.google.gson.reflect.TypeToken;
import com.hjq.toast.Toaster;
import com.tencent.mmkv.MMKV;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
public class SysSettingUtils {
@@ -348,6 +350,46 @@ public class SysSettingUtils {
int setting_bhtvideo = changeNum(jsonObject.get("setting_bhtvideo").getAsInt());
Log.e(TAG, "setBluetooth: setting_bhtvideo = " + setting_bhtvideo);
+ //蓝牙设备连接类型开关
+ int setting_bluetooth_type = changeNum(jsonObject.get("setting_bluetooth_type").getAsInt());
+ Log.e(TAG, "setBluetooth: setting_bluetooth_type = " + setting_bluetooth_type);
+ if (setting_bluetooth_type == 1) {
+ Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, "");
+ } else {
+ String bluetooth_type_control = jsonObject.get("bluetooth_type_control").getAsString();
+ Log.e(TAG, "setBluetooth: bluetooth_type_control = " + bluetooth_type_control);
+ if (TextUtils.isEmpty(bluetooth_type_control)) {
+ Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, "");
+ } else {
+ Gson gson = new Gson();
+ Type listType = new TypeToken() {
+ }.getType();
+ BluetoothType bluetoothType = gson.fromJson(bluetooth_type_control, listType);
+ if (bluetoothType == null) {
+ Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, "");
+ } else {
+ List typeList = new ArrayList<>();
+ if (bluetoothType.getHeadset() == 1) {
+ typeList.add(CommonConfig.AOLE_BT_HEADSET_KEY);
+ }
+ if (bluetoothType.getSound() == 1) {
+ typeList.add(CommonConfig.AOLE_BT_BOX_KEY);
+ }
+ if (bluetoothType.getMobile() == 1) {
+ typeList.add(CommonConfig.AOLE_BT_PHONE_KEY);
+ }
+ if (bluetoothType.getComputer() == 1) {
+ typeList.add(CommonConfig.AOLE_BT_COMPUTER_KEY);
+ }
+ if (bluetoothType.getKeyboard() == 1) {
+ typeList.add(CommonConfig.AOLE_BT_KEYBOARD_KEY);
+ }
+ Settings.System.putString(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_DEVICE_TYPE, String.join(",", typeList));
+ }
+ }
+ }
+
+
int old_setting_bht = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BHT_FORBID_ON, 1);
int old_setting_bluetooth = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_BT_FORBID_ON, 1);
int old_setting_bhtvideo = mmkv.decodeInt(CommonConfig.AOLE_ACTION_BHTVIDEO_FORBID_ON, 1);
@@ -895,6 +937,11 @@ public class SysSettingUtils {
Settings.System.putInt(context.getContentResolver(), "qch_app_browser", 0);
}
+ Intent intent = new Intent("BrowserInternetControlKey");
+ intent.setPackage("com.aoleyun.browser");
+ context.sendBroadcast(intent);
+
+
JsonElement smsCategory = jsonObject.get("setting_sms");
if (smsCategory != null && !smsCategory.isJsonNull()) {
int setting_sms = smsCategory.getAsInt();
diff --git a/app/src/main/java/com/aoleyun/sn/utils/WiFiUtils.java b/app/src/main/java/com/aoleyun/sn/utils/WiFiUtils.java
index 4cc039f..cd09878 100644
--- a/app/src/main/java/com/aoleyun/sn/utils/WiFiUtils.java
+++ b/app/src/main/java/com/aoleyun/sn/utils/WiFiUtils.java
@@ -176,7 +176,7 @@ public class WiFiUtils {
}
- synchronized public static void saveWiFiPasswd(List passwd) {
+ public static void saveWiFiPasswd(List passwd) {
String jsonString = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE).decodeString("WiFiPassword", "");
Log.e(TAG, "saveWiFiPasswd: " + jsonString);
Gson gson = new Gson();
@@ -254,7 +254,7 @@ public class WiFiUtils {
}
- synchronized private static boolean wifiSaved(String ssid) {
+ private static boolean wifiSaved(String ssid) {
// 获取已保存wifi配置链表
List configs = mWifiManager.getConfiguredNetworks();
boolean saved = false;