version:1.8.1

date:2021-11-03 11:12:56
fix:修复恢复出厂设置后搜题开关不显示
add:
This commit is contained in:
2021-11-03 11:20:15 +08:00
parent c04d66726b
commit 32e1d3726f
18 changed files with 370 additions and 217 deletions

View File

@@ -1,16 +1,17 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
def appName() { static def appName() {
return "SnInfo" return "SnInfo"
} }
def releaseTime() { static def releaseTime() {
return new Date().format("yyyyMMdd-HHmmss", TimeZone.getDefault()) return new Date().format("yyyyMMdd-HHmmss", TimeZone.getDefault())
} }
android { android {
compileSdkVersion 29 compileSdkVersion 29
buildToolsVersion "29.0.3" buildToolsVersion "29.0.3"
defaultConfig { defaultConfig {
applicationId "com.info.sn" applicationId "com.info.sn"
minSdkVersion 24 minSdkVersion 24
@@ -45,8 +46,8 @@ android {
productFlavors { productFlavors {
beta { beta {
flavorDimensions "default" flavorDimensions "default"
versionCode 79 versionCode 81
versionName "1.7.9" versionName "1.8.1"
manifestPlaceholders = [ manifestPlaceholders = [
JPUSH_PKGNAME: "com.info.sn", JPUSH_PKGNAME: "com.info.sn",
JPUSH_APPKEY : "edf9cec22731b8b2fed56ee6", //JPush 上注册的包名对应的 Appkey. JPUSH_APPKEY : "edf9cec22731b8b2fed56ee6", //JPush 上注册的包名对应的 Appkey.
@@ -198,9 +199,9 @@ dependencies {
//Retrofit //Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.4.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
//RxJava //RxJava
implementation 'io.reactivex.rxjava2:rxjava:2.2.8' implementation 'io.reactivex.rxjava2:rxjava:2.2.12'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
//生命周期管理 //生命周期管理
implementation 'com.trello.rxlifecycle2:rxlifecycle:2.2.2' implementation 'com.trello.rxlifecycle2:rxlifecycle:2.2.2'
@@ -208,7 +209,7 @@ dependencies {
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.2' implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.2'
implementation 'com.google.code.gson:gson:2.8.7' implementation 'com.google.code.gson:gson:2.8.7'
implementation 'com.google.zxing:core:3.3.0' implementation 'com.google.zxing:core:3.3.2'
implementation 'com.alibaba:fastjson:1.2.76' implementation 'com.alibaba:fastjson:1.2.76'

View File

@@ -68,10 +68,10 @@ public class BaseApplication extends Application {
// } // }
context = this; context = this;
instance = this; instance = this;
if (SystemUtils.isMainProcessName(this, Process.myPid())) { // if (SystemUtils.isMainProcessName(this, Process.myPid())) {
//非主进程不初始化 //非主进程不初始化
utilsInint(); utilsInint();
} // }
} }
private void utilsInint() { private void utilsInint() {

View File

@@ -37,12 +37,10 @@ import io.reactivex.subjects.BehaviorSubject;
* create an instance of this fragment. * create an instance of this fragment.
*/ */
public class AppletQRCodeFragment extends Fragment { public class AppletQRCodeFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2"; private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1; private String mParam1;
private String mParam2; private String mParam2;
@@ -61,7 +59,6 @@ public class AppletQRCodeFragment extends Fragment {
* @param param2 Parameter 2. * @param param2 Parameter 2.
* @return A new instance of fragment WechatFragment. * @return A new instance of fragment WechatFragment.
*/ */
// TODO: Rename and change types and number of parameters
public static AppletQRCodeFragment newInstance(String param1, String param2) { public static AppletQRCodeFragment newInstance(String param1, String param2) {
AppletQRCodeFragment fragment = new AppletQRCodeFragment(); AppletQRCodeFragment fragment = new AppletQRCodeFragment();
Bundle args = new Bundle(); Bundle args = new Bundle();

View File

@@ -24,14 +24,12 @@ import butterknife.BindView;
* create an instance of this fragment. * create an instance of this fragment.
*/ */
public class QRCodeFragment extends Fragment { public class QRCodeFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2"; private static final String ARG_PARAM2 = "param2";
ImageView qr_code; ImageView qr_code;
// TODO: Rename and change types of parameters
private String mParam1; private String mParam1;
private String mParam2; private String mParam2;
private String TAG = QRCodeFragment.class.getSimpleName(); private String TAG = QRCodeFragment.class.getSimpleName();
@@ -48,7 +46,6 @@ public class QRCodeFragment extends Fragment {
* @param param2 Parameter 2. * @param param2 Parameter 2.
* @return A new instance of fragment QRCodeFragment. * @return A new instance of fragment QRCodeFragment.
*/ */
// TODO: Rename and change types and number of parameters
public static QRCodeFragment newInstance(String param1, String param2) { public static QRCodeFragment newInstance(String param1, String param2) {
QRCodeFragment fragment = new QRCodeFragment(); QRCodeFragment fragment = new QRCodeFragment();
Bundle args = new Bundle(); Bundle args = new Bundle();

View File

@@ -14,6 +14,7 @@ import com.alibaba.fastjson.JSONObject;
import com.info.sn.bean.zuoye.SystemSettings; import com.info.sn.bean.zuoye.SystemSettings;
import com.info.sn.utils.ApkUtils; import com.info.sn.utils.ApkUtils;
import com.info.sn.utils.JGYUtils; import com.info.sn.utils.JGYUtils;
import com.info.sn.utils.SPUtils;
import com.info.sn.utils.ToastUtil; import com.info.sn.utils.ToastUtil;
import java.util.Arrays; import java.util.Arrays;
@@ -71,7 +72,8 @@ public class ControlManager {
setIcon(context, settings); setIcon(context, settings);
setCanReset(context, jsonString); setCanReset(context, jsonString);
setDeveloperOptions(context, jsonString); setDeveloperOptions(context, jsonString);
JGYUtils.updateForbidList(context); setSearchTopic(context, jsonString);
JGYUtils.getInstance().updateForbidList();
} }
} }
@@ -93,10 +95,12 @@ public class ControlManager {
if (!DeviceManager.isDebugMode()) { if (!DeviceManager.isDebugMode()) {
setDeveloperOptions(1); setDeveloperOptions(1);
} }
setSearchTopic(0);
} }
/** /**
* usb连接模式管控 * usb连接模式管控
*
* @param mContext * @param mContext
* @param settings * @param settings
*/ */
@@ -136,6 +140,7 @@ public class ControlManager {
/** /**
* usb连接模式管控 * usb连接模式管控
*
* @param state * @param state
*/ */
public void setUSBstate(int state) { public void setUSBstate(int state) {
@@ -218,7 +223,7 @@ public class ControlManager {
//蓝牙总开关开启 //蓝牙总开关开启
String setting_context = settings.getSetting_context(); String setting_context = settings.getSetting_context();
if (setting_bhtvideo == 0) { if (setting_bhtvideo == 0) {
if (null != setting_context && !setting_context.equals("") && !setting_context.equals(" ") && !setting_context.equals("null")) { if (null != setting_context && !"".equals(setting_context) && !" ".equals(setting_context) && !"null".equals(setting_context)) {
Log.e("SystemSetting", "setting_context:" + setting_context); Log.e("SystemSetting", "setting_context:" + setting_context);
JGYUtils.putString(mContext.getContentResolver(), "qch_bhtvideo_forbid_on", setting_context); JGYUtils.putString(mContext.getContentResolver(), "qch_bhtvideo_forbid_on", setting_context);
} else { } else {
@@ -597,6 +602,18 @@ public class ControlManager {
} }
} }
public void setSearchTopic(Context context, String jsonString) {
JSONObject jsonObject = JSON.parseObject(jsonString);
int mode = jsonObject.getIntValue("search_topic");
SPUtils.put(context, "search_topic", mode);
Log.e(TAG, "search_topic:" + mode);
}
public void setSearchTopic(int state) {
SPUtils.put(mContext, "search_topic", state);
Log.e(TAG, "search_topic:" + state);
}
/** /**
* 开机管控usb * 开机管控usb
*/ */

View File

@@ -2,7 +2,7 @@ package com.info.sn.manager;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.os.Environment; import android.util.Log;
import com.info.sn.bean.zuoye.AppInfo; import com.info.sn.bean.zuoye.AppInfo;
import com.info.sn.bean.zuoye.AppStart; import com.info.sn.bean.zuoye.AppStart;
@@ -42,19 +42,26 @@ import com.info.sn.network.api.gankao.QueryPowerUserListApi;
import com.info.sn.network.api.gankao.QueryProductApi; import com.info.sn.network.api.gankao.QueryProductApi;
import com.info.sn.network.api.gankao.UpgradeUserPowerApi; import com.info.sn.network.api.gankao.UpgradeUserPowerApi;
import com.info.sn.network.api.gankao.UserProductsApi; import com.info.sn.network.api.gankao.UserProductsApi;
import com.info.sn.utils.MD5Util;
import com.info.sn.utils.Utils; import com.info.sn.utils.Utils;
import org.jetbrains.annotations.NotNull;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import okhttp3.Cache; import okhttp3.Cache;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import retrofit2.CallAdapter; import okhttp3.Protocol;
import retrofit2.Converter; import okhttp3.Request;
import okhttp3.Response;
import retrofit2.Retrofit; import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory; import retrofit2.converter.gson.GsonConverterFactory;
@@ -63,26 +70,91 @@ public class NetInterfaceManager {
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
private static NetInterfaceManager INSTANCE; private static NetInterfaceManager INSTANCE;
private Context mContext; private Context mContext;
private static Retrofit mRetrofit; private Retrofit mRetrofit;
private static Retrofit mGankaoRetrofit; private OkHttpClient okHttpClient;
private static final String ROOT_URL = UrlAddress.ROOT_URL; private Retrofit mGankaoRetrofit;
private final ConcurrentHashMap<String, Long> requestIdsMap = new ConcurrentHashMap<>();
//超时时间
private static int timeOut = 5;
// 缓存文件最大限制大小20M
private static long cacheSize = 1024 * 1024 * 64;
public static final String CUSTOM_REPEAT_REQ_PROTOCOL = "MY_CUSTOM_REPEAT_REQ_PROTOCOL";
private NetInterfaceManager(Context context) { private NetInterfaceManager(Context context) {
mContext = context; mContext = context;
if (null == mRetrofit) { if (null == mRetrofit) {
if (okHttpClient == null) {
Interceptor myHttpInterceptor = new Interceptor() {
@NotNull
@Override
public Response intercept(@NotNull Chain chain) throws IOException {
Request request = chain.request();
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString());
Response response = chain.proceed(request); //准备返回Response
synchronized (requestIdsMap) {
requestIdsMap.remove(requestKey); //在这里移除正常的请求登记
Log.e("REPEAT-REQUEST", "移除请求2:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
}
return response;
}
};
Interceptor mRequestInterceptor = new Interceptor() {
@NotNull
@Override
public Response intercept(@NotNull Chain chain) throws IOException {
Request request = chain.request();
//拦截处理重复的HTTP 请求,类似 防止快速点击按钮去重 可以不去处理了,全局统一处理
String requestKey = MD5Util.getUpperMD5Str(request.method() + request.url().toString());
synchronized (requestIdsMap) {
if (requestIdsMap.get(requestKey) == null) {
// Log.e("REPEAT-REQUEST", "intercept: " + requestIdsMap);
requestIdsMap.put(requestKey, System.currentTimeMillis());
Log.e("REPEAT-REQUEST", "注册请求:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
} else {
//如果是重复的请求,抛出一个自定义的错误,这个错误大家根据自己的业务定义吧
Log.e("REPEAT-REQUEST", "重复请求:" + requestKey + " --- " + Thread.currentThread().getName() + " URL = " + request.url());
return new Response.Builder()
.protocol(Protocol.get(CUSTOM_REPEAT_REQ_PROTOCOL))
.request(request) //multi thread
.build();
}
}
Response originalResponse = chain.proceed(request);
return originalResponse.newBuilder().build();
}
};
//如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(timeOut, TimeUnit.SECONDS); // 设置连接超时时间
builder.writeTimeout(timeOut, TimeUnit.SECONDS);// 设置写入超时时间
builder.readTimeout(timeOut, TimeUnit.SECONDS);// 设置读取数据超时时间
builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
builder.addInterceptor(myHttpInterceptor);
builder.addNetworkInterceptor(mRequestInterceptor);
// 设置缓存文件路径
String cacheDirectory = mContext.getExternalCacheDir().getAbsolutePath() + "/OkHttpCache";
Cache cache = new Cache(new File(cacheDirectory), cacheSize);
builder.cache(cache);// 设置缓存
okHttpClient = builder.build();
}
mRetrofit = new Retrofit.Builder() mRetrofit = new Retrofit.Builder()
.client(okHttpClient) .client(okHttpClient)
.baseUrl(ROOT_URL) .baseUrl(UrlAddress.ROOT_URL)
.addConverterFactory(gsonConverterFactory) .addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(rxJavaCallAdapterFactory) .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build(); .build();
} }
if (null == mGankaoRetrofit) { if (null == mGankaoRetrofit) {
mGankaoRetrofit = new Retrofit.Builder() mGankaoRetrofit = new Retrofit.Builder()
.client(okHttpClient) .client(okHttpClient)
.baseUrl(UrlAddress.GANKAN_ROOT_URL) .baseUrl(UrlAddress.GANKAN_ROOT_URL)
.addConverterFactory(gsonConverterFactory) .addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(rxJavaCallAdapterFactory) .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build(); .build();
} }
} }
@@ -100,26 +172,10 @@ public class NetInterfaceManager {
return INSTANCE; return INSTANCE;
} }
private static final long cacheSize = 1024 * 1024 * 32;// 缓存文件最大限制大小20M public OkHttpClient getOkHttpClient() {
private static String cacheDirectory = Environment.getExternalStorageDirectory() + "/okttpcaches"; // 设置缓存文件路径 return okHttpClient;
private static Cache cache = new Cache(new File(cacheDirectory), cacheSize); //
private static final OkHttpClient okHttpClient;
private static final int timeOut = 5;
static {
//如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(timeOut, TimeUnit.SECONDS); // 设置连接超时时间
builder.writeTimeout(timeOut, TimeUnit.SECONDS);// 设置写入超时时间
builder.readTimeout(timeOut, TimeUnit.SECONDS);// 设置读取数据超时时间
builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
builder.cache(cache);// 设置缓存
okHttpClient = builder.build();
} }
private static CallAdapter.Factory rxJavaCallAdapterFactory = RxJava2CallAdapterFactory.create();
private static Converter.Factory gsonConverterFactory = GsonConverterFactory.create();
public Observable<BaseResponse<UserInfo>> getsnInfoControl() { public Observable<BaseResponse<UserInfo>> getsnInfoControl() {
return mRetrofit.create(SNInfoApi.class) return mRetrofit.create(SNInfoApi.class)
.getsninfo(Utils.getSerial()) .getsninfo(Utils.getSerial())
@@ -141,14 +197,6 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public BindDevices getbindDevicesControl() {
return mRetrofit.create(BindDevices.class);
}
public AddAppInstall getAddAppInstallControl() {
return mRetrofit.create(AddAppInstall.class);
}
public Observable<BaseResponse> getBrowserControl() { public Observable<BaseResponse> getBrowserControl() {
return mRetrofit.create(Browser.class) return mRetrofit.create(Browser.class)
.getBrowser(Utils.getSerial()) .getBrowser(Utils.getSerial())
@@ -170,14 +218,6 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public APPJump getAppJumpControl() {
return mRetrofit.create(APPJump.class);
}
public UpdateAdminSn getUpdateAdminSnControl() {
return mRetrofit.create(UpdateAdminSn.class);
}
public Observable<BaseResponse<List<AppInfo>>> getQueryAllAppControl() { public Observable<BaseResponse<List<AppInfo>>> getQueryAllAppControl() {
return mRetrofit.create(QueryAllApp.class) return mRetrofit.create(QueryAllApp.class)
.getAllApp(Utils.getSerial()) .getAllApp(Utils.getSerial())
@@ -185,18 +225,6 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public NewestAppUpdate getNewestAppUpdateControl() {
return mRetrofit.create(NewestAppUpdate.class);
}
public UploadScreenshot getUploadScreenshotControl() {
return mRetrofit.create(UploadScreenshot.class);
}
public ScreenLock getScreenLockControl() {
return mRetrofit.create(ScreenLock.class);
}
public Observable<BaseResponse> getTimeControl() { public Observable<BaseResponse> getTimeControl() {
return mRetrofit.create(TimeControl.class) return mRetrofit.create(TimeControl.class)
.getTimeControl(Utils.getSerial()) .getTimeControl(Utils.getSerial())
@@ -204,10 +232,6 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public ScreenState setScreen() {
return mRetrofit.create(ScreenState.class);
}
public Observable<BaseResponse<UserAvatarInfo>> getUserAvatarInfoControl() { public Observable<BaseResponse<UserAvatarInfo>> getUserAvatarInfoControl() {
return mRetrofit.create(UserInfoControl.class) return mRetrofit.create(UserInfoControl.class)
.getUserAvatarInfo(Utils.getSerial()) .getUserAvatarInfo(Utils.getSerial())
@@ -215,15 +239,6 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public SaveSnUidApi getSaveSnUidApiControl() {
return mRetrofit.create(SaveSnUidApi.class);
}
public AppUsedApi getAppUsedControl() {
return mRetrofit.create(AppUsedApi.class);
}
public Observable<BaseResponse> getRunningAppObservable(String json) { public Observable<BaseResponse> getRunningAppObservable(String json) {
return mRetrofit.create(RunningApp.class) return mRetrofit.create(RunningApp.class)
.sendAppInfo(Utils.getSerial(), json) .sendAppInfo(Utils.getSerial(), json)
@@ -266,6 +281,46 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread()); .observeOn(AndroidSchedulers.mainThread());
} }
public BindDevices getbindDevicesControl() {
return mRetrofit.create(BindDevices.class);
}
public AddAppInstall getAddAppInstallControl() {
return mRetrofit.create(AddAppInstall.class);
}
public APPJump getAppJumpControl() {
return mRetrofit.create(APPJump.class);
}
public UpdateAdminSn getUpdateAdminSnControl() {
return mRetrofit.create(UpdateAdminSn.class);
}
public NewestAppUpdate getNewestAppUpdateControl() {
return mRetrofit.create(NewestAppUpdate.class);
}
public UploadScreenshot getUploadScreenshotControl() {
return mRetrofit.create(UploadScreenshot.class);
}
public ScreenLock getScreenLockControl() {
return mRetrofit.create(ScreenLock.class);
}
public ScreenState setScreen() {
return mRetrofit.create(ScreenState.class);
}
public SaveSnUidApi getSaveSnUidApiControl() {
return mRetrofit.create(SaveSnUidApi.class);
}
public AppUsedApi getAppUsedControl() {
return mRetrofit.create(AppUsedApi.class);
}
//赶考 //赶考
public CreateUserApi getCreateUserControl() { public CreateUserApi getCreateUserControl() {

View File

@@ -183,7 +183,7 @@ public class HTTPInterface {
homepag.setPackage("com.android.settings") homepag.setPackage("com.android.settings")
.setPackage("com.android.browser"); .setPackage("com.android.browser");
} }
if (home_page != null && !home_page.equals("")) { if (home_page != null && !"".equals(home_page)) {
homepag.putExtra("homepage", home_page); homepag.putExtra("homepage", home_page);
} else { } else {
homepag.putExtra("homepage", "Invalid"); homepag.putExtra("homepage", "Invalid");
@@ -196,7 +196,7 @@ public class HTTPInterface {
websiteBookMark.setPackage("com.android.settings") websiteBookMark.setPackage("com.android.settings")
.setPackage("com.android.browser"); .setPackage("com.android.browser");
} }
if (label_page != null && !label_page.equals("")) { if (label_page != null && !"".equals(label_page)) {
websiteBookMark.putExtra("websiteBookMark", label_page); websiteBookMark.putExtra("websiteBookMark", label_page);
} else { } else {
websiteBookMark.putExtra("websiteBookMark", "Invalid"); websiteBookMark.putExtra("websiteBookMark", "Invalid");
@@ -463,7 +463,7 @@ public class HTTPInterface {
} }
String jsonString = JSONObject.toJSONString(hideAPPList); String jsonString = JSONObject.toJSONString(hideAPPList);
SPUtils.put(context, "Hide_APP_List", String.join(",", jsonString)); SPUtils.put(context, "Hide_APP_List", String.join(",", jsonString));
JGYUtils.updateHideList(context); JGYUtils.getInstance().updateHideList();
Log.e(TAG, "Hide_APP_List: " + jsonString); Log.e(TAG, "Hide_APP_List: " + jsonString);
} }
} }
@@ -732,11 +732,12 @@ public class HTTPInterface {
.subscribe(new Observer<BaseResponse<AppInfo>>() { .subscribe(new Observer<BaseResponse<AppInfo>>() {
@Override @Override
public void onSubscribe(@NonNull Disposable d) { public void onSubscribe(@NonNull Disposable d) {
Log.e(TAG, "onSubscribe: ");
} }
@Override @Override
public void onNext(@NonNull BaseResponse<AppInfo> appInfoBaseResponse) { public void onNext(@NonNull BaseResponse<AppInfo> appInfoBaseResponse) {
Log.e(TAG, "onNext: " + appInfoBaseResponse);
int code = appInfoBaseResponse.code; int code = appInfoBaseResponse.code;
if (code == 200) { if (code == 200) {
AppInfo appInfo = appInfoBaseResponse.data; AppInfo appInfo = appInfoBaseResponse.data;
@@ -746,7 +747,7 @@ public class HTTPInterface {
} }
Log.e("checkUpdate", "update now"); Log.e("checkUpdate", "update now");
} else { } else {
Log.e("checkUpdate", "not find update"); Log.e("checkUpdate", "not found update");
} }
} }
@@ -757,7 +758,7 @@ public class HTTPInterface {
@Override @Override
public void onComplete() { public void onComplete() {
Log.e(TAG, "onComplete: ");
} }
}); });
@@ -770,6 +771,7 @@ public class HTTPInterface {
} }
public static void checkUpdate(Context context, String packageName) { public static void checkUpdate(Context context, String packageName) {
Log.e(TAG, "checkUpdate: " + packageName);
PackageManager pm = context.getPackageManager(); PackageManager pm = context.getPackageManager();
PackageInfo info = null; PackageInfo info = null;
try { try {

View File

@@ -45,7 +45,6 @@ public class APKinstallReceiver extends BroadcastReceiver {
@Override @Override
public void onReceive(final Context context, Intent intent) { public void onReceive(final Context context, Intent intent) {
mContext = context; mContext = context;
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast. // an Intent broadcast.
String action = intent.getAction(); String action = intent.getAction();
ApkUtils.addShortcut(context); ApkUtils.addShortcut(context);
@@ -100,7 +99,6 @@ public class APKinstallReceiver extends BroadcastReceiver {
} }
} }
public interface NewAppListener { public interface NewAppListener {
void setNewAppListener(String packageName); void setNewAppListener(String packageName);
} }

View File

@@ -17,7 +17,6 @@ public class InstallResultReceiver extends BroadcastReceiver {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast. // an Intent broadcast.
//throw new UnsupportedOperationException("Not yet implemented"); //throw new UnsupportedOperationException("Not yet implemented");
@@ -52,7 +51,7 @@ public class InstallResultReceiver extends BroadcastReceiver {
// Log.e("fht", SESSION_ID); // Log.e("fht", SESSION_ID);
// Log.e("fht", LEGACY_STATUS); // Log.e("fht", LEGACY_STATUS);
// Log.e("fht", STATUS_MESSAGE); // Log.e("fht", STATUS_MESSAGE);
if (STATUS_MESSAGE != null && STATUS_MESSAGE.equals("INSTALL_SUCCEEDED")) { if (STATUS_MESSAGE != null && "INSTALL_SUCCEEDED".equals(STATUS_MESSAGE)) {
// ToastUtil.show(PACKAGE_NAME + "安装成功"); // ToastUtil.show(PACKAGE_NAME + "安装成功");
} }
} }

View File

@@ -293,6 +293,7 @@ public class MyJPushReceiver extends BroadcastReceiver {
case JIGUANG_CAMRERA: case JIGUANG_CAMRERA:
ToastUtil.debugShow("收到推送消息: 摄像头管控"); ToastUtil.debugShow("收到推送消息: 摄像头管控");
setCameta(context, extras); setCameta(context, extras);
JGYUtils.getInstance().updateForbidList();
break; break;
case JIGUANG_PHONE: case JIGUANG_PHONE:
ToastUtil.debugShow("收到推送消息: 电话管控"); ToastUtil.debugShow("收到推送消息: 电话管控");
@@ -598,7 +599,7 @@ public class MyJPushReceiver extends BroadcastReceiver {
JSONObject object = JSON.parseObject(jsonString); JSONObject object = JSON.parseObject(jsonString);
String packageName = object.getString("app_package"); String packageName = object.getString("app_package");
ToastUtil.debugShow("收到应用卸载消息:包名" + packageName); ToastUtil.debugShow("收到应用卸载消息:包名" + packageName);
if (!packageName.equals("") && !packageName.equals(context.getApplicationContext().getPackageName())) { if (!"".equals(packageName) && !packageName.equals(context.getApplicationContext().getPackageName())) {
if (!ApkUtils.isAvailable(context.getApplicationContext(), packageName)) { if (!ApkUtils.isAvailable(context.getApplicationContext(), packageName)) {
// HTTPInterface.setAppuninstallInfo(sn_id, packageName); // HTTPInterface.setAppuninstallInfo(sn_id, packageName);
} else { } else {
@@ -747,13 +748,13 @@ public class MyJPushReceiver extends BroadcastReceiver {
String packageName = jsonObject.getString("package"); String packageName = jsonObject.getString("package");
String nowApplist = JGYUtils.getString(context.getContentResolver(), "qch_app_forbid"); String nowApplist = JGYUtils.getString(context.getContentResolver(), "qch_app_forbid");
List<String> applist = new ArrayList<>(Arrays.asList(nowApplist.split(","))); List<String> applist = new ArrayList<>(Arrays.asList(nowApplist.split(",")));
if (is_upgrade.equals("0")) { if ("0".equals(is_upgrade)) {
if (applist.contains(packageName)) { if (applist.contains(packageName)) {
applist.remove(packageName); applist.remove(packageName);
} else { } else {
Log.e("setAppUpdate", "app已经存在"); Log.e("setAppUpdate", "app已经存在");
} }
} else if (is_upgrade.equals("1")) { } else if ("1".equals(is_upgrade)) {
if (!applist.contains(packageName)) { if (!applist.contains(packageName)) {
applist.add(packageName); applist.add(packageName);
} }
@@ -838,7 +839,7 @@ public class MyJPushReceiver extends BroadcastReceiver {
if (!TextUtils.isEmpty(jsonString)) { if (!TextUtils.isEmpty(jsonString)) {
JSONObject extra = JSON.parseObject(jsonString); JSONObject extra = JSON.parseObject(jsonString);
String white = extra.getString("white"); String white = extra.getString("white");
if (white != null && !white.equals("")) { if (white != null && !"".equals(white)) {
boolean whiteList = JGYUtils.putString(context.getContentResolver(), "DeselectBrowserArray", white); boolean whiteList = JGYUtils.putString(context.getContentResolver(), "DeselectBrowserArray", white);
Log.e("SystemSetting", "setBrowserList-whiteList" + whiteList + ":" + white); Log.e("SystemSetting", "setBrowserList-whiteList" + whiteList + ":" + white);
} else { } else {
@@ -846,7 +847,7 @@ public class MyJPushReceiver extends BroadcastReceiver {
} }
Log.e("whiteList", JGYUtils.getString(context.getContentResolver(), "DeselectBrowserArray")); Log.e("whiteList", JGYUtils.getString(context.getContentResolver(), "DeselectBrowserArray"));
String black = extra.getString("black"); String black = extra.getString("black");
if (black != null && !black.equals("")) { if (black != null && !"".equals(black)) {
boolean blackList = JGYUtils.putString(context.getContentResolver(), "qch_webblack_url", black); boolean blackList = JGYUtils.putString(context.getContentResolver(), "qch_webblack_url", black);
Log.e("SystemSetting", "setBrowserList-blackList" + blackList + ":" + black); Log.e("SystemSetting", "setBrowserList-blackList" + blackList + ":" + black);
} else { } else {
@@ -988,7 +989,7 @@ public class MyJPushReceiver extends BroadcastReceiver {
JSONObject jsonObject = JSON.parseObject(jsonString); JSONObject jsonObject = JSON.parseObject(jsonString);
int search_topic = jsonObject.getIntValue("search_topic"); int search_topic = jsonObject.getIntValue("search_topic");
Log.e(TAG, "searchTopic: put = " + SPUtils.put(context, "search_topic", search_topic)); Log.e(TAG, "searchTopic: put = " + SPUtils.put(context, "search_topic", search_topic));
JGYUtils.updateForbidList(context); JGYUtils.getInstance().updateForbidList();
} }

View File

@@ -41,17 +41,9 @@ public class DownloadService extends Service {
startService(new Intent(this, GuardService.class)); startService(new Intent(this, GuardService.class));
startService(new Intent(this, MainService.class)); startService(new Intent(this, MainService.class));
startService(new Intent(this, ManagerService.class)); startService(new Intent(this, ManagerService.class));
CheckUpdate();
CheckUpdateByPackageName("com.jgyapp.market", handler);
//静默升级应用市场
// CheckUpdateByPackageName("com.android.uiuios", handler);
//静默升级桌面
CheckUpdateByPackageName("com.uiuios.updatetools", handler);
//静默升级更新工具
// HTTPInterface.getAllAppPackageName(handler);
Aria.download(this).register(); Aria.download(this).register();
Aria.download(this).resumeAllTask();
//恢复所有未完成的下载任务 //恢复所有未完成的下载任务
Aria.download(this).resumeAllTask();
return START_STICKY; return START_STICKY;
} }
@@ -61,25 +53,6 @@ public class DownloadService extends Service {
super.onCreate(); super.onCreate();
} }
synchronized private void CheckUpdate() {
// HTTPInterface.checkUpdateByself(handler, this.getPackageName(), String.valueOf(BuildConfig.VERSION_CODE));
}
synchronized private void CheckUpdateByPackageName(String packageName, Handler handlers) {
PackageManager pm = getPackageManager();
PackageInfo packageInfo = null;
try {
packageInfo = pm.getPackageInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (null != packageInfo) {
// HTTPInterface.checkUpdateByPackage(handlers, packageName, String.valueOf(packageInfo.versionCode));
} else {
// HTTPInterface.checkUpdateByPackage(handlers, packageName, "0");
}
}
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
@@ -92,37 +65,6 @@ public class DownloadService extends Service {
}; };
} }
private Handler handler = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
break;
case 200:
Bundle bundle = (Bundle) msg.obj;
getFile(bundle);
break;
case 201:
String apppackage = (String) msg.obj;
Log.e("handler", JGYUtils.getString(getContentResolver(), "qch_app_forbid") + "?");
try {
JGYUtils.putString(getContentResolver(), "qch_app_forbid", apppackage + "com.info.sn,com.android.uiuios,com.appstore.uiui,com.jgyapp.market,com.uiuios.updatetools");
} catch (Exception e) {
Log.e("fht", e.getMessage());
}
break;
case 202:
break;
case 300:
Bundle b = (Bundle) msg.obj;
update(b);
break;
}
}
};
private void getFile(final Bundle bundle) { private void getFile(final Bundle bundle) {
String url = bundle.getString("url"); String url = bundle.getString("url");

View File

@@ -8,7 +8,9 @@ import android.content.IntentFilter;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.PixelFormat; import android.graphics.PixelFormat;
import android.os.Build; import android.os.Build;
import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.os.SystemClock;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
@@ -32,6 +34,11 @@ import com.info.sn.utils.SPUtils;
import com.info.sn.utils.TimeUtils; import com.info.sn.utils.TimeUtils;
import com.info.sn.utils.Utils; import com.info.sn.utils.Utils;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
@@ -52,6 +59,50 @@ public class ManagerService extends Service {
private boolean screenlocked = false; private boolean screenlocked = false;
private boolean timelocked = false; private boolean timelocked = false;
private interface Start {
void onstar(long time);
}
private Start start;
private final ObservableOnSubscribe<Long> subscribe = new ObservableOnSubscribe<Long>() {
@Override
public void subscribe(ObservableEmitter emitter) throws Exception {
start = new Start() {
@Override
public void onstar(long time) {
emitter.onNext(time);
}
};
}
};
private Observer<Long> timeObserver = new Observer<Long>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Long aLong) {
Log.e("TimeObserver", "onNext: " + aLong);
Handler.getMain().postDelayed(() -> HTTPInterface.checkUpdate(ManagerService.this), 1234);
Handler.getMain().postDelayed(() -> HTTPInterface.checkUpdate(ManagerService.this, "com.jgyapp.market"), 3456);
Handler.getMain().postDelayed(() -> HTTPInterface.checkUpdate(ManagerService.this, "com.uiuios.updatetools"), 5678);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
};
@Override @Override
public IBinder onBind(Intent intent) { public IBinder onBind(Intent intent) {
return null; return null;
@@ -67,13 +118,14 @@ public class ManagerService extends Service {
registBootReceive(); registBootReceive();
registerBatteryReceiver(); registerBatteryReceiver();
setFloatingWindow(); setFloatingWindow();
Observable.create(subscribe)
.throttleFirst(3, TimeUnit.HOURS)
.subscribe(timeObserver);
} }
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
HTTPInterface.checkUpdate(this); start.onstar(System.currentTimeMillis());
HTTPInterface.checkUpdate(this, "com.jgyapp.market");
HTTPInterface.checkUpdate(this, "com.uiuios.updatetools");
return START_STICKY; return START_STICKY;
} }

View File

@@ -72,12 +72,12 @@ public class RemoteService extends Service {
@Override @Override
public List<String> getHideAPP() throws RemoteException { public List<String> getHideAPP() throws RemoteException {
return JGYUtils.getHideList(RemoteService.this); return JGYUtils.getInstance().getHideList();
} }
@Override @Override
public List<String> getForbidAPP() throws RemoteException { public List<String> getForbidAPP() throws RemoteException {
return JGYUtils.getForbidList(RemoteService.this); return JGYUtils.getInstance().getForbidList();
} }
}; };
} }

View File

@@ -232,7 +232,6 @@ public class CXAESUtil {
e.printStackTrace(); // To change body of catch statement use File | e.printStackTrace(); // To change body of catch statement use File |
// Settings | File Templates. // Settings | File Templates.
} catch (InvalidAlgorithmParameterException e) { } catch (InvalidAlgorithmParameterException e) {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
return cipher; return cipher;
@@ -242,7 +241,6 @@ public class CXAESUtil {
* 对文件进行AES加密 * 对文件进行AES加密
* *
* @param sourceFile * @param sourceFile
* @param fileType
* @param sKey * @param sKey
* @return * @return
*/ */

View File

@@ -74,7 +74,6 @@ public class JGYUtils {
} }
public static String getAuthorization() { public static String getAuthorization() {
// TODO: 2021/10/19 ndk代码待实现
return "Basic ZWRmOWNlYzIyNzMxYjhiMmZlZDU2ZWU2OmIzYWRlZDRmODk5N2E0ODM5ZTI5MjRjYg=="; return "Basic ZWRmOWNlYzIyNzMxYjhiMmZlZDU2ZWU2OmIzYWRlZDRmODk5N2E0ODM5ZTI5MjRjYg==";
} }
@@ -98,7 +97,7 @@ public class JGYUtils {
* 从Manifest中获取meta-data值 * 从Manifest中获取meta-data值
* https://blog.csdn.net/yue_233/article/details/91453451 * https://blog.csdn.net/yue_233/article/details/91453451
* *
* @return * @return MetaData
*/ */
public String getStringMetaData() { public String getStringMetaData() {
ApplicationInfo appInfo = null; ApplicationInfo appInfo = null;
@@ -577,43 +576,43 @@ public class JGYUtils {
return processName; return processName;
} }
public void setDefaultDesktop(Context context, String pkg, String className) { public void setDefaultDesktop( String pkg, String className) {
Intent intent = new Intent("setDefaultLauncher"); Intent intent = new Intent("setDefaultLauncher");
intent.putExtra("package", pkg); intent.putExtra("package", pkg);
intent.putExtra("className", className); intent.putExtra("className", className);
intent.setPackage("com.android.settings"); intent.setPackage("com.android.settings");
context.sendBroadcast(intent); mContext.sendBroadcast(intent);
} }
public static ArrayList<String> getForbidList(Context context) { public ArrayList<String> getForbidList() {
ArrayList<String> disableApp = new ArrayList<>(); ArrayList<String> disableApp = new ArrayList<>();
int search_topic = (int) SPUtils.get(context, "search_topic", 0); int search_topic = (int) SPUtils.get(mContext, "search_topic", 0);
Log.e(TAG, "getForbidList: search_topic = " + search_topic); Log.e(TAG, "getForbidList: search_topic = " + search_topic);
Log.e(TAG, "getForbidList: " + JSONObject.toJSONString(SPUtils.getAll(context))); Log.e(TAG, "getForbidList: " + JSONObject.toJSONString(SPUtils.getAll(mContext)));
if (search_topic == 0) { if (search_topic == 0) {
disableApp.add("拍照搜题"); disableApp.add("拍照搜题");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_camera", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_camera", 0) == 1) {
disableApp.add("com.mediatek.camera"); disableApp.add("com.mediatek.camera");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_filemanager", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_filemanager", 0) == 1) {
disableApp.add("com.android.documentsui"); disableApp.add("com.android.documentsui");
disableApp.add("com.mediatek.filemanager"); disableApp.add("com.mediatek.filemanager");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_deskclock", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_deskclock", 0) == 1) {
disableApp.add("com.android.deskclock"); disableApp.add("com.android.deskclock");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_soundrecorder", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_soundrecorder", 0) == 1) {
disableApp.add("com.android.soundrecorder"); disableApp.add("com.android.soundrecorder");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_gallery", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_gallery", 0) == 1) {
disableApp.add("com.android.gallery3d"); disableApp.add("com.android.gallery3d");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_music", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_music", 0) == 1) {
disableApp.add("com.android.music"); disableApp.add("com.android.music");
} }
if (JGYUtils.getInt(context.getContentResolver(), "qch_app_browser", 0) == 1) { if (JGYUtils.getInt(mContext.getContentResolver(), "qch_app_browser", 0) == 1) {
disableApp.add("com.android.browser"); disableApp.add("com.android.browser");
} }
Log.e(TAG, "getForbidAPP: " + disableApp); Log.e(TAG, "getForbidAPP: " + disableApp);
@@ -622,18 +621,18 @@ public class JGYUtils {
private static final String UPDATE_FORBID_APP = "UPDATE_FORBID_APP"; private static final String UPDATE_FORBID_APP = "UPDATE_FORBID_APP";
public static void updateForbidList(Context context) { public void updateForbidList() {
Intent intent = new Intent(UPDATE_FORBID_APP); Intent intent = new Intent(UPDATE_FORBID_APP);
intent.putStringArrayListExtra("forbid_app_list", getForbidList(context)); intent.putStringArrayListExtra("forbid_app_list", getForbidList());
Log.e(TAG, "updateForbidList: " + getForbidList(context)); Log.e(TAG, "updateForbidList: " + getForbidList());
// intent.setComponent(new ComponentName("com.jiaoguanyi.os","com.jiaoguanyi.os.view.MainActivity")); // intent.setComponent(new ComponentName("com.jiaoguanyi.os","com.jiaoguanyi.os.view.MainActivity"));
intent.setPackage("com.jiaoguanyi.os"); intent.setPackage("com.jiaoguanyi.os");
// intent.setPackage("com.tt.ttutils"); // intent.setPackage("com.tt.ttutils");
context.sendBroadcast(intent); mContext.sendBroadcast(intent);
} }
public static ArrayList<String> getHideList(Context context) { public ArrayList<String> getHideList() {
String appString = (String) SPUtils.get(context, "Hide_APP_List", ""); String appString = (String) SPUtils.get(mContext, "Hide_APP_List", "");
Log.e(TAG, "Hide_APP_List: " + appString); Log.e(TAG, "Hide_APP_List: " + appString);
if (TextUtils.isEmpty(appString)) { if (TextUtils.isEmpty(appString)) {
return new ArrayList<>(); return new ArrayList<>();
@@ -644,13 +643,13 @@ public class JGYUtils {
private static final String UPDATE_HIDE_APP = "UPDATE_HIDE_APP"; private static final String UPDATE_HIDE_APP = "UPDATE_HIDE_APP";
public static void updateHideList(Context context) { public void updateHideList() {
Intent intent = new Intent(UPDATE_HIDE_APP); Intent intent = new Intent(UPDATE_HIDE_APP);
intent.putStringArrayListExtra("hide_app_list", getHideList(context)); intent.putStringArrayListExtra("hide_app_list", getHideList());
// intent.setComponent(new ComponentName("com.jiaoguanyi.os","com.jiaoguanyi.os.view.MainActivity")); // intent.setComponent(new ComponentName("com.jiaoguanyi.os","com.jiaoguanyi.os.view.MainActivity"));
intent.setPackage("com.jiaoguanyi.os"); intent.setPackage("com.jiaoguanyi.os");
// intent.setPackage("com.tt.ttutils"); // intent.setPackage("com.tt.ttutils");
context.sendBroadcast(intent); mContext.sendBroadcast(intent);
} }
//应用管理-允许联网 //应用管理-允许联网
@@ -675,13 +674,8 @@ public class JGYUtils {
String oldBlackList = (String) SPUtils.get(context, ACTION_HrReceiver_JGY_DIS, ""); String oldBlackList = (String) SPUtils.get(context, ACTION_HrReceiver_JGY_DIS, "");
HashSet<String> oldBlackListSet = new HashSet<>(Arrays.asList(oldBlackList.split(","))); HashSet<String> oldBlackListSet = new HashSet<>(Arrays.asList(oldBlackList.split(",")));
oldBlackListSet.removeIf(new Predicate<String>() {
@Override
public boolean test(String s) {
//去空 //去空
return TextUtils.isEmpty(s.trim()); oldBlackListSet.removeIf(s -> TextUtils.isEmpty(s.trim()));
}
});
//之前禁止上网得列表 //之前禁止上网得列表
Log.e(TAG, "setAppNetwork: oldBlackListSet: " + oldBlackListSet); Log.e(TAG, "setAppNetwork: oldBlackListSet: " + oldBlackListSet);
if (oldBlackListSet.size() == 0) { if (oldBlackListSet.size() == 0) {
@@ -757,12 +751,7 @@ public class JGYUtils {
String oldBlackListString = (String) SPUtils.get(mContext, ACTION_HrReceiver_JGY_DIS, ""); String oldBlackListString = (String) SPUtils.get(mContext, ACTION_HrReceiver_JGY_DIS, "");
HashSet<String> oldBlackListSet = new HashSet<>(Arrays.asList(oldBlackListString.split(","))); HashSet<String> oldBlackListSet = new HashSet<>(Arrays.asList(oldBlackListString.split(",")));
Log.e(TAG, "setAppNetwork: oldBlackListSet: " + oldBlackListSet); Log.e(TAG, "setAppNetwork: oldBlackListSet: " + oldBlackListSet);
oldBlackListSet.removeIf(new Predicate<String>() { oldBlackListSet.removeIf(s -> TextUtils.isEmpty(s.trim()));
@Override
public boolean test(String s) {
return TextUtils.isEmpty(s.trim());
}
});
for (String pkg : oldBlackListSet) { for (String pkg : oldBlackListSet) {
if (TextUtils.isEmpty(pkg)) continue; if (TextUtils.isEmpty(pkg)) continue;
if (!ApkUtils.isAvailable(mContext, pkg)) { if (!ApkUtils.isAvailable(mContext, pkg)) {

View File

@@ -0,0 +1,112 @@
package com.info.sn.utils;
import android.annotation.SuppressLint;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
public static String packetMD5(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(
Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString();
}
@SuppressLint("DefaultLocale")
public static String getUpperMD5Str(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(
Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString().toUpperCase();
}
/**
* 获取16位的MD5 值得
*
* @param str
* @return
*/
@SuppressLint("DefaultLocale")
public static String getUpperMD5Str16(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(
Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString().toUpperCase().substring(8, 24);
}
}

View File

@@ -160,7 +160,7 @@ public class Utils {
try { try {
List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces()); List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) { for (NetworkInterface nif : all) {
if (!nif.getName().equalsIgnoreCase("wlan0")) if (!"wlan0".equalsIgnoreCase(nif.getName()))
continue; continue;
byte[] macBytes = nif.getHardwareAddress(); byte[] macBytes = nif.getHardwareAddress();
if (macBytes == null) { if (macBytes == null) {
@@ -208,15 +208,15 @@ public class Utils {
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
e.printStackTrace(); e.printStackTrace();
} }
if (WLANMAC != null && !WLANMAC.equals("")) { if (WLANMAC != null && !"".equals(WLANMAC)) {
m.update(WLANMAC.getBytes(), 0, WLANMAC.length()); m.update(WLANMAC.getBytes(), 0, WLANMAC.length());
} else if (getSimSerialNumber(context) != null && !getSimSerialNumber(context).equals("")) { } else if (getSimSerialNumber(context) != null && !"".equals(getSimSerialNumber(context))) {
m.update(getSimSerialNumber(context).getBytes(), 0, getSimSerialNumber(context).length()); m.update(getSimSerialNumber(context).getBytes(), 0, getSimSerialNumber(context).length());
} else { } else {
m.update(getPesudoUniqueID().getBytes(), 0, getPesudoUniqueID().length()); m.update(getPesudoUniqueID().getBytes(), 0, getPesudoUniqueID().length());
} }
// get md5 bytes // get md5 bytes
byte p_md5Data[] = m.digest(); byte[] p_md5Data = m.digest();
// create a hex string // create a hex string
String m_szUniqueID = new String(); String m_szUniqueID = new String();
for (int i = 0; i < p_md5Data.length; i++) { for (int i = 0; i < p_md5Data.length; i++) {
@@ -559,7 +559,6 @@ public class Utils {
; ;
return version; return version;
} catch (NameNotFoundException e) { } catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
return ""; return "";
@@ -1227,12 +1226,7 @@ public class Utils {
used.setApp_name(information.getLabel()); used.setApp_name(information.getLabel());
appUsedList.add(used); appUsedList.add(used);
} }
appUsedList.removeIf(new Predicate<AppUsed>() { appUsedList.removeIf(appUsed -> appUsed.getUseTime() == 0);
@Override
public boolean test(AppUsed appUsed) {
return appUsed.getUseTime() == 0;
}
});
String jsonString = JSON.toJSONString(appUsedList); String jsonString = JSON.toJSONString(appUsedList);
Log.e(TAG, "getAppUsedStatistics: " + jsonString); Log.e(TAG, "getAppUsedStatistics: " + jsonString);
return jsonString; return jsonString;

View File

@@ -9,7 +9,6 @@
<string name="setting">设置</string> <string name="setting">设置</string>
<string name="cancel">取消</string> <string name="cancel">取消</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="hello_blank_fragment">Hello blank fragment</string>
<string name="hello"><u>查看操作指引</u></string> <string name="hello"><u>查看操作指引</u></string>
<string name="caption">尊敬的用户:\n非常感谢选用教管壹品牌云管控·AI学习机您可按以下步骤激活家长管控账号并绑定AI学习机以便获得相关管控功能如应用安装黑白名单设置、浏览器上网网址黑白 <string name="caption">尊敬的用户:\n非常感谢选用教管壹品牌云管控·AI学习机您可按以下步骤激活家长管控账号并绑定AI学习机以便获得相关管控功能如应用安装黑白名单设置、浏览器上网网址黑白