feat: 增加公共应用标签,增加指定包名安装应用

This commit is contained in:
2026-05-23 10:34:52 +08:00
parent c7851a8a64
commit d935d30c6c
18 changed files with 663 additions and 401 deletions

View File

@@ -29,8 +29,8 @@ android {
defaultConfig {
applicationId "com.aoleyun.sn"
versionCode 216
versionName "1.6.0507"
versionCode 221
versionName "1.6.0522"
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 24

View File

@@ -58,6 +58,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
checkTestUpdate();
getDefaultDesktop();
getDefaultApp();
getAllInfoAndSetting();
}
public MutableLiveData<Boolean> mLockedData = new MutableLiveData<>();
@@ -240,6 +241,9 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
});
}
public void getAllInfoAndSetting() {
NetInterfaceManager.getInstance().getAllInfoAndSetting(getLifecycle());
}
public MutableLiveData<Bitmap> mQrCodeData = new MutableLiveData<>();
@@ -344,7 +348,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
}
public void getPushTags() {
NetInterfaceManager.getInstance().setPushTags(getLifecycle(), new NetInterfaceManager.PushTagCallback() {
NetInterfaceManager.getInstance().getPushAndPubAppTag(getLifecycle(), new NetInterfaceManager.PushTagCallback() {
@Override
public void setPushTag(String tag) {

View File

@@ -320,7 +320,7 @@ public class BaseApplication extends MultiDexApplication {
aliyunPushInit();
break;
default:
NetInterfaceManager.getInstance().setPushTags();
NetInterfaceManager.getInstance().getPushAndPubAppTag();
}
}

View File

@@ -14,6 +14,8 @@ public class ForceDownloadData implements Serializable {
String app_id;
String app_md5;
long app_version_code;
int allow_install_app;
public String getApp_package() {
return app_package;
@@ -63,6 +65,14 @@ public class ForceDownloadData implements Serializable {
this.app_md5 = app_md5;
}
public int getAllow_install_app() {
return allow_install_app;
}
public void setAllow_install_app(int allow_install_app) {
this.allow_install_app = allow_install_app;
}
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();

View File

@@ -1,48 +0,0 @@
package com.aoleyun.sn.bean;
import com.google.gson.Gson;
import com.google.gson.JsonParser;
import org.jetbrains.annotations.NotNull;
import java.io.Serializable;
import java.util.List;
public class NetAndLaunchBean implements Serializable {
private static final long serialVersionUID = -5029848848935111774L;
private int code;
private String msg;
private List<NetAndLaunchData> data;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<NetAndLaunchData> getData() {
return data;
}
public void setData(List<NetAndLaunchData> data) {
this.data = data;
}
@NotNull
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
}
}

View File

@@ -17,6 +17,7 @@ public class NetAndLaunchData implements Serializable {
int is_appstore;
int is_notification;
int is_dynamic_perm;
int allow_install_app;
public int getIs_slide() {
@@ -93,6 +94,14 @@ public class NetAndLaunchData implements Serializable {
this.is_dynamic_perm = is_dynamic_perm;
}
public int getAllow_install_app() {
return allow_install_app;
}
public void setAllow_install_app(int allow_install_app) {
this.allow_install_app = allow_install_app;
}
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();

View File

@@ -0,0 +1,26 @@
package com.aoleyun.sn.bean;
import java.io.Serializable;
public class PushTag implements Serializable {
private static final long serialVersionUID = 4259225499869024039L;
String tag;
String tag_type;
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
public String getTag_type() {
return tag_type;
}
public void setTag_type(String tag_type) {
this.tag_type = tag_type;
}
}

View File

@@ -67,6 +67,8 @@ public class CommonConfig {
public final static String DEVICES_TAG = "Aoleyun_devices_tpush_tag";
/*分组标签*/
public final static String DEVICES_GROUP_TAG = "Aoleyun_devices_tpush_group_tag";
/*公共应用标签*/
public final static String SN_PUBLIC_APP_TAG = "Aoleyun_sn_public_app_tag";
/*上次获取标签的时间*/
public final static String GET_DEVICES_TAG_LASTTIME = "Aoleyun_devices_tag_last_time";
/*专注模式刷新*/
@@ -120,6 +122,8 @@ public class CommonConfig {
/*强制安装应用,禁止卸载*/
public final static String AOLE_ACTION_FORCE_APP = "aole_force_app";
/*指定应用安装源 非指定包名不能安装apk*/
public static final String SEEWO_APP_SOURCE_INSTALL_WHITELIST = "seewo_app_source_install_whitelist";
/*指定应用安装源 非指定包名不能安装apk*/
public static final String APP_SOURCE_WHITE_LIST = "app_source_white_list";
/*应用ID管控*/

View File

@@ -1,5 +1,7 @@
package com.aoleyun.sn.network;
import static com.google.gson.JsonParser.parseString;
import android.annotation.SuppressLint;
import android.app.AlarmManager;
import android.app.PendingIntent;
@@ -48,8 +50,9 @@ 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.NetAndLaunchData;
import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.bean.PushTag;
import com.aoleyun.sn.bean.ScreenLockState;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.bean.SnSetting;
@@ -156,8 +159,6 @@ import retrofit2.Retrofit;
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import static com.google.gson.JsonParser.parseString;
public class NetInterfaceManager {
private static final String TAG = "NetInterfaceManager";
private static final RxCacheManager CACHE_MANAGER = RxCacheManager.getInstance();
@@ -167,7 +168,17 @@ public class NetInterfaceManager {
CACHE_MANAGER.clearAllCache();
}
private static final long CACHE_EXPIRE_ONE_MINUTE = 60 * 1000;
public static void removeCache(String key) {
Log.e(TAG, "removeCache: key = " + key);
CACHE_MANAGER.removeCache(key);
}
//缓存过期时间1秒
private static final long CACHE_EXPIRE_ONE_SECOND = 1000;
//默认 缓存过期时间10秒
private static final long DEFAULT_CACHE_EXPIRE = 10 * CACHE_EXPIRE_ONE_SECOND;
//缓存过期时间1分钟
private static final long CACHE_EXPIRE_ONE_MINUTE = 60 * CACHE_EXPIRE_ONE_SECOND;
//超时时间
private static final int TIME_OUT = 5;
// 缓存大小
@@ -489,16 +500,16 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<NetAndLaunchBean> getAppAutoStartUpdateAndNetObservable() {
public Observable<BaseResponse<List<NetAndLaunchData>>> getAppAutoStartUpdateAndNetObservable() {
return withCache(schedule(getAppControlApi().getNetAndLaunchApi(HTTP_KEY, Utils.getSerial(mContext))),
UrlAddress.NET_AND_LAUNCH_API,
60 * CACHE_EXPIRE_ONE_MINUTE);
DEFAULT_CACHE_EXPIRE);
}
public Observable<BaseResponse<List<AppAttr>>> getSnAppAttrObservable() {
return withCache(schedule(getAppControlApi().getSnAppAttr(Utils.getSerial(mContext))),
UrlAddress.GET_SN_APP_ATTR,
60 * CACHE_EXPIRE_ONE_MINUTE);
CACHE_EXPIRE_ONE_MINUTE);
}
public Observable<BaseResponse<TopApp>> getTopAppControl() {
@@ -554,31 +565,31 @@ public class NetInterfaceManager {
public Observable<BaseResponse<List<ForceDownloadData>>> getTestUpdateObservable() {
return withCache(schedule(getAppDownloadApi().getTestUpdate(Utils.getSerial(mContext))),
UrlAddress.GET_SN_APP_TEST,
720 * CACHE_EXPIRE_ONE_MINUTE);
10 * CACHE_EXPIRE_ONE_MINUTE);
}
public Observable<BaseResponse<AppLimit>> getAppLimitObservable() {
return withCache(schedule(getAppInstallStrategyApi().getAppLimitApi(HTTP_KEY, Utils.getSerial(mContext))),
UrlAddress.SET_WHITE_PACKAGE_LIST,
720 * CACHE_EXPIRE_ONE_MINUTE);
DEFAULT_CACHE_EXPIRE);
}
public Observable<BaseResponse<List<AppDateInfo>>> getAdminAppObservable() {
return withCache(schedule(getAppInstallStrategyApi().getAdminApp(Utils.getSerial(mContext))),
UrlAddress.GET_ADMIN_APP,
720 * CACHE_EXPIRE_ONE_MINUTE);
DEFAULT_CACHE_EXPIRE);
}
public Observable<BaseResponse<List<AppDateInfo>>> getRankCommonAppObservable() {
return withCache(schedule(getAppInstallStrategyApi().getRankApp(HTTP_KEY, Utils.getSerial(mContext), "1")),
UrlAddress.HTTP_TAG_COMMOAPP,
720 * CACHE_EXPIRE_ONE_MINUTE);
DEFAULT_CACHE_EXPIRE);
}
public Observable<BaseResponse<List<AppListInfo>>> getAllAppControl() {
return withCache(schedule(getAppInstallStrategyApi().getAllAppList(HTTP_KEY, Utils.getSerial(mContext))),
UrlAddress.GET_ALL_APP,
360 * CACHE_EXPIRE_ONE_MINUTE);
DEFAULT_CACHE_EXPIRE);
}
public Observable<BaseResponse<CustomROMApp>> getCustomRomAppControl() {
@@ -622,12 +633,18 @@ public class NetInterfaceManager {
*
* @return
*/
public Observable<BaseResponse<Batch>> getPushTagsObservable() {
return withCache(schedule(getDevicesStatusApi().getPushTags(Utils.getSerial(mContext))),
public Observable<BaseResponse<Batch>> getSnTagObservable() {
return withCache(schedule(getDevicesStatusApi().getSnTag(Utils.getSerial(mContext))),
UrlAddress.GET_DEVICES_TAGS,
10 * CACHE_EXPIRE_ONE_MINUTE);
}
public Observable<BaseResponse<PushTag>> getPushTagObservable() {
return withCache(schedule(getDevicesStatusApi().getPushTag(Utils.getSerial(mContext), 1)),
UrlAddress.GET_PUSH_TAG,
10 * CACHE_EXPIRE_ONE_MINUTE);
}
public Observable<BaseResponse<ScreenLockState>> getScreenLockObservable() {
return schedule(getDevicesStatusApi().getScreenLockState(Utils.getSerial(mContext)));
}
@@ -1195,6 +1212,8 @@ public class NetInterfaceManager {
}
public void getForceDownload() {
removeCache(UrlAddress.GET_FORCE_INSTALL_LIST);
removeCache(UrlAddress.GROUP_APP_INSTALL_LIST);
// getForceDownloadObservable()
// .subscribe(getForceDownloadObserver(null));
Observable.zip(getForceDownloadObservable(), getGroupForceDownloadObservable(), new BiFunction<BaseResponse<List<ForceDownloadData>>,
@@ -1614,85 +1633,6 @@ public class NetInterfaceManager {
};
}
public void getAppAutoStartUpdateAndNet(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getAppAutoStartUpdateAndNetObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getAppAutoStartUpdateAndNetObserver(callback));
}
public void getAppAutoStartUpdateAndNet(List<AppListInfo> appListInfos) {
getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<NetAndLaunchBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAutoUpdateAndNet", "onSubscribe: ");
}
@Override
public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) {
Log.e("getAutoUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
if (netAndLaunchBean.getCode() == 200) {
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchBean, appListInfos);
} else {
Log.e("getAutoUpdateAndNet", "onNext: " + netAndLaunchBean.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAutoUpdateAndNet", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getAutoUpdateAndNet", "onComplete: ");
}
});
}
public void getNetAndLaunchSetting() {
getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getAppAutoStartUpdateAndNetObserver(null));
}
private Observer<NetAndLaunchBean> getAppAutoStartUpdateAndNetObserver(onCompleteCallback callback) {
return new Observer<NetAndLaunchBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAppAutoStart", "onSubscribe: ");
}
@Override
public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) {
Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString());
if (netAndLaunchBean.getCode() == 200) {
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchBean);
} else {
Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAppAutoStart", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getAppAutoStart", "onComplete: ");
if (callback != null) {
callback.onComplete();
}
}
};
}
public void getAppIDControl(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getAppIDControlObservable()
.observeOn(Schedulers.io())
@@ -2250,6 +2190,110 @@ public class NetInterfaceManager {
});
}
public void getPushAndPubAppTag(BehaviorSubject<ActivityEvent> lifecycle, PushTagCallback callback) {
Observable.zip(getSnTagObservable(), getPushTagObservable(), getTagBiFunction(callback))
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getTagObserver(callback));
}
public void getPushAndPubAppTag(PushTagCallback callback) {
Observable.zip(getSnTagObservable(), getPushTagObservable(), getTagBiFunction(callback))
.subscribe(getTagObserver(callback));
}
public void getPushAndPubAppTag() {
Observable.zip(getSnTagObservable(), getPushTagObservable(), getTagBiFunction(null))
.subscribe(getTagObserver(null));
}
private BiFunction<BaseResponse<Batch>, BaseResponse<PushTag>, Set<String>> getTagBiFunction(PushTagCallback callback) {
return new BiFunction<BaseResponse<Batch>, BaseResponse<PushTag>, Set<String>>() {
@Override
public Set<String> apply(BaseResponse<Batch> batchBaseResponse, BaseResponse<PushTag> pushTagBaseResponse) throws Throwable {
Log.e("getTagBiFunction", "apply: batchBaseResponse = " + batchBaseResponse);
Log.e("getTagBiFunction", "apply: pushTagBaseResponse = " + pushTagBaseResponse);
Set<String> tagSet = new HashSet<>();
if (batchBaseResponse.isSuccess()) {
Batch batchBean = batchBaseResponse.data;
String batchTag = batchBean.getBatch();
if (!TextUtils.isEmpty(batchTag)) {
tagSet.add(batchTag);
mMMKV.encode(CommonConfig.DEVICES_TAG, batchTag);
if (callback != null)
callback.setPushTag(batchTag);
} else {
mMMKV.remove(CommonConfig.DEVICES_TAG);
if (callback != null)
callback.setPushTag("");
}
Set<String> groupTag = batchBean.getGroup_en_name();
if (groupTag != null && !groupTag.isEmpty()) {
tagSet.addAll(groupTag);
mMMKV.encode(CommonConfig.DEVICES_GROUP_TAG, groupTag);
} else {
mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG);
}
} else {
mMMKV.remove(CommonConfig.DEVICES_TAG);
mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG);
if (callback != null)
callback.setPushTag("");
}
if (pushTagBaseResponse.isSuccess()) {
PushTag pushTag = pushTagBaseResponse.data;
String pubPushTag = pushTag.getTag();
tagSet.add(pubPushTag);
mMMKV.encode(CommonConfig.SN_PUBLIC_APP_TAG, pubPushTag);
} else {
mMMKV.remove(CommonConfig.SN_PUBLIC_APP_TAG);
}
return tagSet;
}
};
}
private Observer<Set<String>> getTagObserver(PushTagCallback callback) {
return new Observer<Set<String>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getTagObserver", "onSubscribe: ");
}
@Override
public void onNext(@NonNull Set<String> strings) {
Log.e("getTagObserver", "onNext: " + strings);
clearAndAppendTags(strings);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getTagObserver", "onError: " + e.getMessage());
Set<String> tags = new HashSet<>();
String batch = mMMKV.decodeString(CommonConfig.DEVICES_TAG, "");
Log.e("getTagObserver", "onError: batch = " + batch);
if (!TextUtils.isEmpty(batch)) {
tags.add(batch);
}
Set<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
Log.e("getTagObserver", "onError: groupTagSets = " + groupTagSets);
tags.addAll(groupTagSets);
String pubPushTag = mMMKV.decodeString(CommonConfig.SN_PUBLIC_APP_TAG, "");
if (!TextUtils.isEmpty(pubPushTag)) {
tags.add(pubPushTag);
}
clearAndAppendTags(tags);
if (callback != null)
callback.setPushTag(batch);
}
@Override
public void onComplete() {
Log.e("getTagObserver", "onComplete: ");
}
};
}
public interface PushTagCallback {
void setPushTag(String tag);
}
@@ -2260,17 +2304,20 @@ public class NetInterfaceManager {
* @param lifecycle
* @param callback
*/
public void setPushTags(BehaviorSubject<ActivityEvent> lifecycle, PushTagCallback callback) {
getPushTagsObservable()
@Deprecated
public void getSnTag(BehaviorSubject<ActivityEvent> lifecycle, PushTagCallback callback) {
getSnTagObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getPushTagsObserver(callback));
}
public void setPushTags() {
getPushTagsObservable()
@Deprecated
public void getSnTag() {
getSnTagObservable()
.subscribe(getPushTagsObserver(null));
}
@Deprecated
private Observer<BaseResponse<Batch>> getPushTagsObserver(PushTagCallback callback) {
return new Observer<BaseResponse<Batch>>() {
@Override
@@ -2294,7 +2341,7 @@ public class NetInterfaceManager {
}
if (TextUtils.isEmpty(batch)) {
Log.e("setPushTags", "onNext: " + "batch empty");
mMMKV.encode(CommonConfig.DEVICES_TAG, "");
mMMKV.remove(CommonConfig.DEVICES_TAG);
if (callback != null)
callback.setPushTag("");
} else {
@@ -2304,7 +2351,7 @@ public class NetInterfaceManager {
tags.add(batch);
}
} else {
mMMKV.encode(CommonConfig.DEVICES_TAG, "");
mMMKV.remove(CommonConfig.DEVICES_TAG);
mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG);
if (callback != null)
callback.setPushTag("");
@@ -2317,7 +2364,7 @@ public class NetInterfaceManager {
public void onError(@NonNull Throwable e) {
Log.e("setPushTags", "onError: " + e.getMessage());
String batch = mMMKV.decodeString(CommonConfig.DEVICES_TAG, "");
Log.e("setPushTags", "onError: tagSets = " + batch);
Log.e("setPushTags", "onError: batch = " + batch);
Set<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
Log.e("setPushTags", "onError: groupTagSets = " + groupTagSets);
Set<String> tags = new HashSet<>();
@@ -2339,74 +2386,64 @@ public class NetInterfaceManager {
}
public void clearAndAppendTags(Set<String> tagSets) {
JgyUtils.getInstance().getAppPlatform(platform -> {
if (platform == JgyUtils.MTKPlatform) {
tagSets.add(JgyUtils.MTKTag);
}
// else if (platform == JgyUtils.CubePlatform) {
// tagSets.add(JgyUtils.ZhanruiTag);
// }
else if (platform == JgyUtils.ZhanruiPlatform) {
tagSets.add(JgyUtils.ZhanruiTag);
} else if (platform == JgyUtils.MTK11Platform) {
tagSets.add(JgyUtils.MTK11Tag);
} else if (platform == JgyUtils.TeclastP20sPlatform) {
tagSets.add(JgyUtils.TeclastP20sTag);
} else if (platform == JgyUtils.AH6016Platform) {
tagSets.add(JgyUtils.AH6016Tag);
} else if (platform == JgyUtils.ZR6016Platform) {
tagSets.add(JgyUtils.ZR6016Tag);
} else if (platform == JgyUtils.HRAD13Platform) {
tagSets.add(JgyUtils.HRAD13Tag);
} else if (platform == JgyUtils.G10PPlatform) {
tagSets.add(JgyUtils.G10PTag);
} else if (platform == JgyUtils.C2Platform) {
tagSets.add(JgyUtils.C2Tag);
} else if (platform == JgyUtils.YXPD1Platform) {
tagSets.add(JgyUtils.YXPD1TAG);
} else if (platform == JgyUtils.G11Platform) {
tagSets.add(JgyUtils.G11TAG);
} else if (platform == JgyUtils.MT8768Platform) {
tagSets.add(JgyUtils.MT8768Tag);
} else if (platform == JgyUtils.AUDG104Platform) {
tagSets.add(JgyUtils.AUDG104Tag);
} else if (platform == JgyUtils.HL500Platform) {
tagSets.add(JgyUtils.HL500Tag);
} else if (platform == JgyUtils.G11JPlatform) {
tagSets.add(JgyUtils.G11JTag);
} else if (platform == JgyUtils.P50Platform) {
tagSets.add(JgyUtils.P50Tag);
} else if (platform == JgyUtils.seewoPlatform) {
tagSets.add(JgyUtils.seewoTag);
} else if (platform == JgyUtils.U1302Platform) {
tagSets.add(JgyUtils.allwinner_U1302);
} else if (platform == JgyUtils.MT6765Platform) {
tagSets.add(JgyUtils.MT6765_TAG);
} else if (platform == JgyUtils.G128TPlatform) {
tagSets.add(JgyUtils.G128T_TAG);
} else if (platform == JgyUtils.QualcommTPlatform) {
tagSets.add(JgyUtils.Qualcomm_TAG);
}
});
tagSets.add(JgyUtils.getInstance().getAppPlatform());
Log.e(TAG, "clearAndAppendTags: " + tagSets);
Log.e(TAG, "AliyunPush: " + tagSets);
String[] tag = new ArrayList<>(tagSets).toArray(new String[tagSets.size()]);
CloudPushService pushService = PushServiceFactory.getCloudPushService();
pushService.bindTag(CloudPushService.DEVICE_TARGET, tag, null, new CommonCallback() {
@Override
public void onSuccess(String s) {
Log.e("AliyunPush", "bind tag " + Arrays.toString(tag) + " success\n");
Log.e("clearAndAppendTags", "bind tag " + Arrays.toString(tag) + " success\n");
}
@Override
public void onFailed(String errorCode, String errorMsg) {
Log.e("AliyunPush", "bind tag " + Arrays.toString(tag) + " failed." +
Log.e("clearAndAppendTags", "bind tag " + Arrays.toString(tag) + " failed." +
"errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n");
BaseApplication.onTagOperatorResult(errorCode);
}
});
}
@Deprecated
private void getPushTag(BehaviorSubject<ActivityEvent> lifecycle) {
getPushTagObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getPushTagObserver());
}
@Deprecated
private void getPushTag() {
getPushTagObservable()
.subscribe(getPushTagObserver());
}
@Deprecated
private Observer<BaseResponse<PushTag>> getPushTagObserver() {
return new Observer<BaseResponse<PushTag>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getPushTagObserver", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<PushTag> pushTagBaseResponse) {
Log.e("getPushTagObserver", "onNext: " + pushTagBaseResponse);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getPushTagObserver", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("getPushTagObserver", "onComplete: ");
}
};
}
public void updateDeviceInfo(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getUpdateDeviceInfoObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
@@ -2931,6 +2968,9 @@ public class NetInterfaceManager {
}
public void getAppLimit() {
removeCache(UrlAddress.SET_WHITE_PACKAGE_LIST);
removeCache(UrlAddress.GET_ADMIN_APP);
removeCache(UrlAddress.HTTP_TAG_COMMOAPP);
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getRankCommonAppObservable(), getBiFunction())
.subscribe(getAppLimitListObserver(null));
// getAppLimitObservable()
@@ -3032,6 +3072,112 @@ public class NetInterfaceManager {
.subscribe(getAllAppListObserver(null));
}
public void getAllInfoAndSetting(BehaviorSubject<ActivityEvent> lifecycle) {
Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction<BaseResponse<List<AppListInfo>>, BaseResponse<List<NetAndLaunchData>>, List<AppListInfo>>() {
@Override
public List<AppListInfo> apply(BaseResponse<List<AppListInfo>> appListInfoResponse, BaseResponse<List<NetAndLaunchData>> netAndLaunchDataResponse) throws Throwable {
Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code);
Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code);
if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) {
List<AppListInfo> appListInfos = appListInfoResponse.data;
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
List<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos);
return appListInfos;
} else if (appListInfoResponse.isSuccess()) {
List<AppListInfo> appListInfos = appListInfoResponse.data;
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
return appListInfos;
} else if (netAndLaunchDataResponse.isSuccess()) {
List<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList);
}
return null;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(new Observer<List<AppListInfo>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAllInfoAndSetting", "onSubscribe: ");
}
@Override
public void onNext(@NonNull List<AppListInfo> appListInfos) {
Log.e("getAllInfoAndSetting", "onNext: " + appListInfos.size());
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAllInfoAndSetting", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("getAllInfoAndSetting", "onComplete: ");
}
});
}
@Deprecated
public void getAllInfoAndSetting() {
Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction<BaseResponse<List<AppListInfo>>, BaseResponse<List<NetAndLaunchData>>, List<AppListInfo>>() {
@Override
public List<AppListInfo> apply(BaseResponse<List<AppListInfo>> appListInfoResponse, BaseResponse<List<NetAndLaunchData>> netAndLaunchDataResponse) throws Throwable {
Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code);
Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code);
if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) {
List<AppListInfo> appListInfos = appListInfoResponse.data;
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
List<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos);
return appListInfos;
} else if (appListInfoResponse.isSuccess()) {
List<AppListInfo> appListInfos = appListInfoResponse.data;
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
return appListInfos;
} else if (netAndLaunchDataResponse.isSuccess()) {
List<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList);
}
return null;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<AppListInfo>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAllInfoAndSetting", "onSubscribe: ");
}
@Override
public void onNext(@NonNull List<AppListInfo> appListInfos) {
Log.e("getAllInfoAndSetting", "onNext: " + appListInfos.size());
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAllInfoAndSetting", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("getAllInfoAndSetting", "onComplete: ");
}
});
}
public Observer<BaseResponse<List<AppListInfo>>> getAllAppListObserver(onCompleteCallback callback) {
return new Observer<BaseResponse<List<AppListInfo>>>() {
@Override
@@ -3044,7 +3190,6 @@ public class NetInterfaceManager {
Log.e("getAllAppList", "onNext: " + listBaseResponse);
if (listBaseResponse.isSuccess()) {
List<AppListInfo> appListInfos = listBaseResponse.data;
getAppAutoStartUpdateAndNet(appListInfos);
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
} else {
@@ -3068,6 +3213,87 @@ public class NetInterfaceManager {
};
}
@Deprecated
public void getAppAutoStartUpdateAndNet(List<AppListInfo> appListInfos) {
getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseResponse<List<NetAndLaunchData>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAutoUpdateAndNet", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<NetAndLaunchData>> response) {
Log.e("getAutoUpdateAndNet", "onNext: " + response.toString());
if (response.isSuccess()) {
JgyUtils.getInstance().setNetAndlaunch(response.data, appListInfos);
} else {
Log.e("getAutoUpdateAndNet", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAutoUpdateAndNet", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getAutoUpdateAndNet", "onComplete: ");
}
});
}
public void getAppAutoStartUpdateAndNet(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getAppAutoStartUpdateAndNetObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getAppAutoStartUpdateAndNetObserver(callback));
}
public void getAppAutoStartUpdateAndNet() {
removeCache(UrlAddress.NET_AND_LAUNCH_API);
getAppAutoStartUpdateAndNetObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getAppAutoStartUpdateAndNetObserver(null));
}
private Observer<BaseResponse<List<NetAndLaunchData>>> getAppAutoStartUpdateAndNetObserver(onCompleteCallback callback) {
return new Observer<BaseResponse<List<NetAndLaunchData>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAppAutoStart", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<NetAndLaunchData>> response) {
Log.e("getAppAutoStart", "onNext: " + response.toString());
if (response.isSuccess()) {
JgyUtils.getInstance().setNetAndlaunch(response.data);
} else {
Log.e("getAppAutoStart", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAppAutoStart", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getAppAutoStart", "onComplete: ");
if (callback != null) {
callback.onComplete();
}
}
};
}
@Deprecated
public void getSnTimeControl(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getSnTimeObservable()
@@ -3851,7 +4077,7 @@ public class NetInterfaceManager {
@Override
public void onNext(@NonNull BaseResponse<BlacklistBean> blacklistBeanBaseResponse) {
Log.e("getBlackList", "onNext: " + blacklistBeanBaseResponse);
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
} else {
try {
@@ -3865,15 +4091,15 @@ public class NetInterfaceManager {
if (blacklistBeanBaseResponse.isSuccess()) {
BlacklistBean blacklistBean = blacklistBeanBaseResponse.data;
if (blacklistBean == null) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL))
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL))
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null);
} else {
List<String> strings = blacklistBean.getBlacklist();
if (strings == null || strings.isEmpty()) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL))
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL))
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null);
} else {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
// TODO: 2024/10/31 需要多写一次保证数据库变化
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null);
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings));
@@ -3881,7 +4107,7 @@ public class NetInterfaceManager {
}
}
} else {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL))
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL))
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null);
}
@@ -3927,7 +4153,7 @@ public class NetInterfaceManager {
@Override
public void onNext(@NonNull BaseResponse<WhitelistBean> blacklistBeanBaseResponse) {
Log.e("getWhiteList", "onNext: " + blacklistBeanBaseResponse);
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
} else {
try {
@@ -3941,15 +4167,15 @@ public class NetInterfaceManager {
if (blacklistBeanBaseResponse.isSuccess()) {
WhitelistBean whitelistBean = blacklistBeanBaseResponse.data;
if (whitelistBean == null) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL))
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL))
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null);
} else {
List<String> strings = whitelistBean.getWhitelist();
if (strings == null || strings.isEmpty()) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL))
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL))
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null);
} else {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
// TODO: 2024/10/31 需要多写一次保证数据库变化
strings.add("ttstd.com");
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings));
@@ -3959,7 +4185,7 @@ public class NetInterfaceManager {
}
}
} else {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL))
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL))
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null);
}

View File

@@ -13,6 +13,8 @@ public class UrlAddress {
public static final String GET_DEVICES_LOCKED = "lock/index";
/*获取设备标签*/
public static final String GET_DEVICES_TAGS = "Sn/getSnTag";
/*获取公共应用推送标签*/
public static final String GET_PUSH_TAG = "sn/get-push-tag";
/*通过sn获取信息*/
public static final String GET_STUDENTS_INFO = "Sn/getStudent";
/*获取霸屏状态*/
@@ -149,7 +151,6 @@ public class UrlAddress {
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
/**
* log相关
*/

View File

@@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.AppAttr;
import com.aoleyun.sn.bean.AppID;
import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.bean.NetAndLaunchData;
import com.aoleyun.sn.bean.TopApp;
import com.aoleyun.sn.network.UrlAddress;
@@ -20,7 +20,7 @@ import retrofit2.http.Query;
public interface AppControlApi {
@FormUrlEncoded
@POST(UrlAddress.NET_AND_LAUNCH_API)
Observable<NetAndLaunchBean> getNetAndLaunchApi(
Observable<BaseResponse<List<NetAndLaunchData>>> getNetAndLaunchApi(
@Field("key") String key,
@Field("sn") String sn
);

View File

@@ -4,6 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.Batch;
import com.aoleyun.sn.bean.DeveloperBean;
import com.aoleyun.sn.bean.EBagCode;
import com.aoleyun.sn.bean.PushTag;
import com.aoleyun.sn.bean.ScreenLockState;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.network.UrlAddress;
@@ -23,10 +24,16 @@ public interface DevicesStatusApi {
);
@GET(UrlAddress.GET_DEVICES_TAGS)
Observable<BaseResponse<Batch>> getPushTags(
Observable<BaseResponse<Batch>> getSnTag(
@Query("sn") String sn
);
@GET(UrlAddress.GET_PUSH_TAG)
Observable<BaseResponse<PushTag>> getPushTag(
@Query("sn") String sn,
@Query("tag_type") int tag_type
);
@FormUrlEncoded
@POST(UrlAddress.GET_STUDENTS_INFO)
Observable<BaseResponse<StudentsInfo>> getStudentsInfo(

View File

@@ -41,6 +41,7 @@ import com.aoleyun.sn.gson.NullStringToEmptyAdapterFactory;
import com.aoleyun.sn.manager.MapManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.RetryCallback;
import com.aoleyun.sn.network.UrlAddress;
import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.BatteryUtils;
@@ -267,6 +268,12 @@ public class PushManager {
private static final String GROUP_APP_UNINSTALL = "81";
/*电子围栏*/
private static final String ELECTRONIC_FENCE = "82";
/*发出声音*/
private static final String PLAY_SOUND2 = "89";
/*更新公共应用设置,不安装*/
private static final String PUBLIC_APP_SETTING = "91";
/*公共应用卸载*/
private static final String PUBLIC_APP_UNINSTALL = "92";
public void setPushContent(String title, String extras) {
@@ -310,21 +317,23 @@ public class PushManager {
mMMKV.clearAll();
JgyUtils.getInstance().cleanAoleAppCache();
JgyUtils.getInstance().wakeUpAoleyunAPP();
NetInterfaceManager.getInstance().setPushTags();
NetInterfaceManager.getInstance().getPushAndPubAppTag();
NetInterfaceManager.clearAllCache();
sendRefreshBroadcast(mContext);
break;
case MSG_INSTALL:
Toaster.debugShow("收到管控:应用安装");
NetInterfaceManager.removeCache(UrlAddress.GET_FORCE_INSTALL_LIST);
NetInterfaceManager.removeCache(UrlAddress.GROUP_APP_INSTALL_LIST);
doDownloadAndInstall(extras);
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
NetInterfaceManager.getInstance().getDesktopIcon();
NetInterfaceManager.getInstance().getDefaultDesktop();
NetInterfaceManager.getInstance().getNetAndLaunchSetting();
NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet();
}
}, 1234);
}, 5234);
mContext.sendBroadcast(new Intent(AOLEYUN_REFRESH_DESKTOP));
break;
case MSG_LOCK:
@@ -522,6 +531,7 @@ public class PushManager {
setDefalutApp(extras);
break;
case PLAY_SOUND:
case PLAY_SOUND2:
Toaster.debugShow("收到管控:查找设备");
playSound(extras);
break;
@@ -551,7 +561,7 @@ public class PushManager {
break;
case UPDATE_CHILD_BATCH:
Toaster.debugShow("收到管控:更换批次不恢复出厂设置");
NetInterfaceManager.getInstance().setPushTags();
NetInterfaceManager.getInstance().getPushAndPubAppTag();
Aria.download(this).removeAllTask(true);
JgyUtils.getInstance().cleanAoleAppCache();
try {
@@ -682,6 +692,12 @@ public class PushManager {
}
case ELECTRONIC_FENCE:
break;
case PUBLIC_APP_SETTING:
updatePublicAppSettings(extras);
break;
case PUBLIC_APP_UNINSTALL:
uninstallPublicApp(extras);
break;
default:
}
@@ -734,7 +750,7 @@ public class PushManager {
public void run() {
NetInterfaceManager.getInstance().getDesktopIcon();
NetInterfaceManager.getInstance().getDefaultDesktop();
NetInterfaceManager.getInstance().getNetAndLaunchSetting();
NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet();
}
}, 1234);
}
@@ -1553,4 +1569,30 @@ public class PushManager {
ApkUtils.openPackage(mContext, app_package);
}
public void updatePublicAppSettings(String extras) {
Toaster.debugShow("收到管控:应用公共设置");
if (TextUtils.isEmpty(extras)) {
Log.e(TAG, "updatePublicAppSettings: extras is null");
return;
}
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
NetInterfaceManager.getInstance().getAppLimit();
NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet();
}
}, 2345);
ApkInfoPush apkInfoPush = GsonUtils.toJavaObject(extras, ApkInfoPush.class);
}
public void uninstallPublicApp(String extras) {
Toaster.debugShow("收到管控:应用公共删除");
if (!TextUtils.isEmpty(extras)) {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
String pkg = jsonObject.get("package_name").getAsString();
deleteApp(pkg);
}
}
}

View File

@@ -103,7 +103,7 @@ public class NewAppReceiver extends BroadcastReceiver {
private static void sendAppInfo() {
Observable.create((ObservableEmitter<String> emitter) -> {
newAppListener = emitter::onNext;
}).throttleLast(5, TimeUnit.MINUTES)
}).throttleLast(1, TimeUnit.MINUTES)
//这句很关键这是RxJava中的操作符在规定时间内观察者不在接收被观察者发送的事件
.subscribe(new Observer<String>() {
@Override
@@ -118,7 +118,7 @@ public class NewAppReceiver extends BroadcastReceiver {
NetInterfaceManager.getInstance().getForceDownload();
NetInterfaceManager.getInstance().getAppLimit();
// NetInterfaceManager.getInstance().getDefaultDesktop();
NetInterfaceManager.getInstance().getNetAndLaunchSetting();
NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet();
NetInterfaceManager.getInstance().getDesktopIcon();
NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() {
@Override

View File

@@ -96,6 +96,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt
public void onDisconnected() {
Log.e("OnNetworkStatusChanged", "onDisconnected: ");
Toaster.debugShow("网络断开连接");
NetInterfaceManager.clearAllCache();
}
@Override
@@ -475,6 +476,11 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt
.subscribe(networkObserver);
JgyUtils.getInstance().checkAoleyunApp();
String allowAppList = Settings.System.getString(getContentResolver(), CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST);
if (TextUtils.isEmpty(allowAppList)) {
Settings.System.putString(getContentResolver(), CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", JgyUtils.DEFAULT_APP_SOURCE_WHITE_LIST));
}
}
private void initLiveData() {
@@ -515,6 +521,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt
mServiceModel.getAllAppList();
mServiceModel.getBrowserBookmarks();
mServiceModel.getDesktopIcon();
mServiceModel.getAllInfoAndSetting();
mServiceModel.getAppAutoStartUpdateAndNet();
mServiceModel.setAppinsideWeb();
mServiceModel.getAppIdControl();

View File

@@ -3,7 +3,6 @@ package com.aoleyun.sn.service.main;
import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -32,7 +31,6 @@ import com.trello.rxlifecycle4.android.ActivityEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -94,22 +92,22 @@ public class MainServiceModel extends ViewModel {
public MutableLiveData<String> mTagData = new MutableLiveData<>();
public void setPushTags() {
NetInterfaceManager.getInstance().setPushTags(getLifecycle(), new NetInterfaceManager.PushTagCallback() {
NetInterfaceManager.getInstance().getPushAndPubAppTag(getLifecycle(), new NetInterfaceManager.PushTagCallback() {
@Override
public void setPushTag(String tag) {
mTagData.postValue(tag);
}
});
String tagSets = mMMKV.decodeString(CommonConfig.DEVICES_TAG);
Log.e(TAG, "setPushTags: tagSets =" + tagSets);
Set<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets);
Set<String> tags = new HashSet<>();
tags.addAll(groupTagSets);
if (!TextUtils.isEmpty(tagSets)) {
tags.add(tagSets);
}
NetInterfaceManager.getInstance().clearAndAppendTags(tags);
// String tagSets = mMMKV.decodeString(CommonConfig.DEVICES_TAG);
// Log.e(TAG, "setPushTags: tagSets =" + tagSets);
// Set<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
// Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets);
// Set<String> tags = new HashSet<>();
// tags.addAll(groupTagSets);
// if (!TextUtils.isEmpty(tagSets)) {
// tags.add(tagSets);
// }
// NetInterfaceManager.getInstance().clearAndAppendTags(tags);
}
private void setpushTag(Set<String> tagSets) {
@@ -394,6 +392,10 @@ public class MainServiceModel extends ViewModel {
});
}
public void getAllInfoAndSetting() {
NetInterfaceManager.getInstance().getAllInfoAndSetting(getLifecycle());
}
public void getAppAutoStartUpdateAndNet() {
NetInterfaceManager.getInstance()
.getAppAutoStartUpdateAndNet(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {

View File

@@ -1,5 +1,7 @@
package com.aoleyun.sn.utils;
import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE;
import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.app.ActivityManagerNative;
@@ -52,7 +54,6 @@ 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;
import com.aoleyun.sn.bean.TimeControlApp;
@@ -64,7 +65,6 @@ import com.aoleyun.sn.disklrucache.CacheHelper;
import com.aoleyun.sn.gson.GsonUtils;
import com.aoleyun.sn.manager.AllwinnerCubeMdmManager;
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.StepService;
@@ -126,8 +126,6 @@ import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE;
public class JgyUtils {
private static final String TAG = "JgyUtils";
@@ -581,62 +579,50 @@ public class JgyUtils {
/**
* 应用自启升级和网络权限管理
*
* @param netAndLaunchBean
* @param dataList
*/
public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean, List<AppListInfo> appListInfos) {
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString());
Log.e(TAG, "setNetAndlaunch: ");
HashSet<String> autoLaunchApp = new HashSet<>();//开机自启app
HashSet<String> allowNetApp = new HashSet<>();//允许联网
HashSet<String> disallowNetApp = new HashSet<>();//禁止联网
HashSet<String> allowUpgrade = new HashSet<>();//允许升级
HashSet<String> disallowUpgrade = new HashSet<>();//禁止升级
HashSet<String> allowSlide = new HashSet<>();//允许滑动
HashSet<String> disallowSlide = new HashSet<>();//禁止滑动
public void setNetAndlaunch(List<NetAndLaunchData> dataList, List<AppListInfo> appListInfos) {
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + dataList.toString());
List<NetAndLaunchData> data = netAndLaunchBean.getData();
for (NetAndLaunchData netAndLaunchData : data) {
String app_package = netAndLaunchData.getApp_package();
int is_auto = netAndLaunchData.getIs_auto();
int is_network = netAndLaunchData.getIs_network();
int is_upgrade = netAndLaunchData.getIs_upgrade();
int is_slide = netAndLaunchData.getIs_slide();
if (is_auto == 1) {
autoLaunchApp.add(app_package);
}
if (is_network == 1) {
allowNetApp.add(app_package);
} else {
disallowNetApp.add(app_package);
}
if (is_upgrade == 1) {
allowUpgrade.add(app_package);
} else {
disallowUpgrade.add(app_package);
}
if (is_slide == 1) {
allowSlide.add(app_package);
} else {
disallowSlide.add(app_package);
}
}
//开机自启app
HashSet<String> autoLaunchApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_auto() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许联网
HashSet<String> allowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止联网
HashSet<String> disallowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许升级
HashSet<String> allowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止升级
HashSet<String> disallowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许滑动
HashSet<String> allowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止滑动
HashSet<String> disallowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止通知栏显示通知
List<String> disallowNotification = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_notification() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toList());
//默认给所有权限
HashSet<String> allowPermissions = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_dynamic_perm() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许应用安装其他应用
HashSet<String> allowInstallApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getAllow_install_app() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
if (disallowSlide.size() != 0) {
String slide_not = String.join(",", disallowSlide);
boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not);
Log.e("fht", "aole_disable_slide=" + writeSucceed + ":" + slide_not);
Log.e("setNetAndlaunch", "aole_disable_slide=" + writeSucceed + ":" + slide_not);
} else {
String slide_ok = String.join(",", allowSlide);
boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid");
Log.e("fht", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok);
Log.e("setNetAndlaunch", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok);
}
String[] upgrade_ok = new String[allowUpgrade.size()];
allowUpgrade.toArray(upgrade_ok);
checkPackageAndVersion(disallowUpgrade, appListInfos);
String[] upgrade_not = new String[disallowUpgrade.size()];
disallowUpgrade.toArray(upgrade_not);
Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok);
String aole_app_power_on = String.join(",", autoLaunchApp);
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on);
if (TextUtils.isEmpty(aole_app_power_on)) {
@@ -653,6 +639,94 @@ public class JgyUtils {
// Log.e(TAG, "setNetAndlaunch: 测试写入: " + w);
// }
setAppNetwork(disallowNetApp, allowNetApp);
setAppSourceInstallWhiteList(allowInstallApp);
}
public void setNetAndlaunch(List<NetAndLaunchData> dataList) {
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + dataList.toString());
//开机自启app
HashSet<String> autoLaunchApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_auto() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许联网
HashSet<String> allowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止联网
HashSet<String> disallowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许升级
HashSet<String> allowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止升级
HashSet<String> disallowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许滑动
HashSet<String> allowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止滑动
HashSet<String> disallowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//禁止通知栏显示通知
HashSet<String> disallowNotification = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_notification() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//默认给所有权限
HashSet<String> allowPermissions = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_dynamic_perm() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
//允许应用安装其他应用
HashSet<String> allowInstallApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getAllow_install_app() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
if (disallowSlide.size() != 0) {
String slide_not = String.join(",", disallowSlide);
boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not);
Log.e("setNetAndlaunch", "aole_disable_slide=" + writeSucceed + ":" + slide_not);
} else {
String slide_ok = String.join(",", allowSlide);
boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid");
Log.e("setNetAndlaunch", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok);
}
String[] upgrade_ok = new String[allowUpgrade.size()];
allowUpgrade.toArray(upgrade_ok);
String[] upgrade_not = new String[disallowUpgrade.size()];
disallowUpgrade.toArray(upgrade_not);
Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok);
Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok);
String aole_app_power_on = String.join(",", autoLaunchApp);
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on);
if (TextUtils.isEmpty(aole_app_power_on)) {
//当 qch_app_power_on 的值为空时,会造成系统所有应用断网
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid");
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + "Invalid");
} else {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on);
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on);
}
// if (BuildConfig.DEBUG) {
// TODO: 2021/7/2 测试写入为空是否断网
// boolean w = Settings.System.putString(crv, "aole_app_power_on", "");
// Log.e(TAG, "setNetAndlaunch: 测试写入: " + w);
// }
setAppNetwork(disallowNetApp, allowNetApp);
setDisallowNotificationPackage(mContext, disallowNotification);
mMMKV.encode("aole_app_privilege", allowPermissions);
setAllowPermissionsPackage();
setAppSourceInstallWhiteList(allowInstallApp);
}
public static final List<String> DEFAULT_APP_SOURCE_WHITE_LIST = new ArrayList<String>() {{
this.add("com.aoleyun.sn");
this.add("com.aoleyun.appstore");
this.add("com.aoleyun.browser");
this.add("com.aoleyun.info");
this.add("com.aoleyun.os");
this.add("com.aoleyun.audos");
this.add("com.books.wisdom");
this.add("com.japanese_books.wisdom");
}};
public void setAppSourceInstallWhiteList(HashSet<String> allowInstallApp) {
if (allowInstallApp == null || allowInstallApp.isEmpty()) {
Log.e(TAG, "setAppSourceInstallWhiteList: allowInstallApp size = 0");
Settings.System.putString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", DEFAULT_APP_SOURCE_WHITE_LIST));
} else {
allowInstallApp.addAll(DEFAULT_APP_SOURCE_WHITE_LIST);
List<String> allowList = new ArrayList<>(allowInstallApp);
Settings.System.putString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", allowList));
}
Log.e(TAG, "setAppSourceInstallWhiteList: getString = " + Settings.System.getString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST));
}
public void onBootOpenApp() {
@@ -716,93 +790,6 @@ public class JgyUtils {
}
}
public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) {
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString());
Log.e(TAG, "setNetAndlaunch: ");
HashSet<String> autoLaunchApp = new HashSet<>();//开机自启app
HashSet<String> allowNetApp = new HashSet<>();//允许联网
HashSet<String> disallowNetApp = new HashSet<>();//禁止联网
HashSet<String> allowUpgrade = new HashSet<>();//允许升级
HashSet<String> disallowUpgrade = new HashSet<>();//禁止升级
HashSet<String> allowSlide = new HashSet<>();//允许滑动
HashSet<String> disallowSlide = new HashSet<>();//禁止滑动
HashSet<String> disallowNotification = new HashSet<>();//禁止通知栏显示通知
HashSet<String> allowPermissions = new HashSet<>();//默认给所有权限
List<NetAndLaunchData> data = netAndLaunchBean.getData();
for (NetAndLaunchData netAndLaunchData : data) {
String app_package = netAndLaunchData.getApp_package();
int is_auto = netAndLaunchData.getIs_auto();
int is_network = netAndLaunchData.getIs_network();
int is_upgrade = netAndLaunchData.getIs_upgrade();
int is_slide = netAndLaunchData.getIs_slide();
int is_notification = netAndLaunchData.getIs_notification();
int is_dynamic_perm = netAndLaunchData.getIs_dynamic_perm();
if (is_auto == 1) {
autoLaunchApp.add(app_package);
}
if (is_network == 1) {
allowNetApp.add(app_package);
} else {
disallowNetApp.add(app_package);
}
if (is_upgrade == 1) {
allowUpgrade.add(app_package);
} else {
disallowUpgrade.add(app_package);
}
if (is_slide == 1) {
allowSlide.add(app_package);
} else {
disallowSlide.add(app_package);
}
if (is_notification == 0) {
disallowNotification.add(app_package);
}
if (is_dynamic_perm == 1) {
allowPermissions.add(app_package);
}
}
if (disallowSlide.size() != 0) {
String slide_not = String.join(",", disallowSlide);
boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not);
Log.e("fht", "aole_disable_slide=" + writeSucceed + ":" + slide_not);
} else {
String slide_ok = String.join(",", allowSlide);
boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid");
Log.e("fht", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok);
}
String[] upgrade_ok = new String[allowUpgrade.size()];
allowUpgrade.toArray(upgrade_ok);
String[] upgrade_not = new String[disallowUpgrade.size()];
disallowUpgrade.toArray(upgrade_not);
Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok);
String aole_app_power_on = String.join(",", autoLaunchApp);
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on);
if (TextUtils.isEmpty(aole_app_power_on)) {
//当 qch_app_power_on 的值为空时,会造成系统所有应用断网
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid");
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + "Invalid");
} else {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on);
Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on);
}
// if (BuildConfig.DEBUG) {
// TODO: 2021/7/2 测试写入为空是否断网
// boolean w = Settings.System.putString(crv, "aole_app_power_on", "");
// Log.e(TAG, "setNetAndlaunch: 测试写入: " + w);
// }
setAppNetwork(disallowNetApp, allowNetApp);
setDisallowNotificationPackage(mContext, disallowNotification);
mMMKV.encode("aole_app_privilege", allowPermissions);
setAllowPermissionsPackage();
}
private void setDisallowNotificationPackage(Context context, HashSet<String> pkgSet) {
Log.e(TAG, "setDisallowNotificationPackage: " + pkgSet);
if (pkgSet.size() == 0) {
@@ -862,8 +849,8 @@ public class JgyUtils {
Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 blackList =" + blackList);
Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 whiteList =" + whiteList);
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
Log.e(TAG, "setAppNetwork: Ebox201 skip delete");
} else {
try {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null);
@@ -904,7 +891,8 @@ public class JgyUtils {
pkgs.addAll(DEFAULT_ALLOW_NETWORK_APP_SET);
List<String> filterList = pkgs.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList());
Log.e(TAG, "setAppNetwork: filterList = " + filterList);
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
if (filterList.size() == 0) {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null);
} else {
@@ -923,11 +911,11 @@ public class JgyUtils {
*/
public void updateNetworkWhiteList() {
Log.e(TAG, "updateNetworkWhiteList: ");
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
} else {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null);
try {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null);
CmdUtil.Result result = CmdUtil.execute(" settings delete system aole_network_allow");
Log.e(TAG, "updateNetworkWhiteList: " + result);
} catch (Exception e) {
@@ -935,11 +923,11 @@ public class JgyUtils {
}
}
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
} else {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null);
try {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null);
CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_black_list");
Log.e(TAG, "updateNetworkWhiteList: " + result);
} catch (Exception e) {
@@ -947,13 +935,13 @@ public class JgyUtils {
}
}
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
} else {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null);
try {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null);
CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_white_list");
Log.e(TAG, "getWhiteList: " + result);
Log.e(TAG, "updateNetworkWhiteList: " + result);
} catch (Exception e) {
e.printStackTrace();
}
@@ -973,7 +961,7 @@ public class JgyUtils {
List<String> filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList());
Log.e(TAG, "updateNetworkWhiteList: filterList = " + filterList);
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) {
if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) {
if (filterList.size() == 0) {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null);
} else {
@@ -1014,7 +1002,7 @@ public class JgyUtils {
}
public void writeDeselectIDtoSystem(List<AppID> appIDList) {
if (!"Ebox201".equals(Build.MODEL) && !"Ebox201W".equals(Build.MODEL)) {
if (!"Ebox201".equals(Build.MODEL) && !"Ebox201W".equals(Build.MODEL) && !"G128A".equals(Build.MODEL)) {
Log.e(TAG, "writeDeselectIDtoSystem: not match Ebox201 or Ebox201W");
return;
}
@@ -1547,6 +1535,7 @@ public class JgyUtils {
Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_FORBID, aole_app_forbid);
}
@Deprecated
public void checkForceDownload() {
// String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST);
// //为 "" 是已经请求成功的
@@ -2986,25 +2975,6 @@ public class JgyUtils {
}
}
@Deprecated
public List<String> getHidePackage() {
String jsonString = cacheHelper.getAsString(UrlAddress.GET_HIDE_DESKTOPICON);
//为 "" 是已经请求成功的
if (jsonString == null) {
return new ArrayList<>();
} else {
Gson gson = new Gson();
Type type = new TypeToken<List<String>>() {
}.getType();
List<String> list = gson.fromJson(jsonString, type);
if (list == null) {
return new ArrayList<>();
} else {
return list;
}
}
}
public List<String> getDisablePackage() {
List<String> list = new ArrayList<>();
if (Settings.System.getInt(crv, "qch_app_camera", 0) == 1) {

View File

@@ -6,6 +6,7 @@ buildscript {
// mavenCentral()
maven { url 'https://jitpack.io' }
maven { url 'https://developer.huawei.com/repo/' }
maven { url 'https://developer.hihonor.com/repo' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/public' }
@@ -31,6 +32,7 @@ allprojects {
// mavenCentral()
maven { url 'https://jitpack.io' }
maven { url 'https://developer.huawei.com/repo/' }
maven { url 'https://developer.hihonor.com/repo' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/public' }