version:4.2

fix:修复不能自动下载强制应用,锁定状态显示问题,增加打开主页判断是否在请求
update:
This commit is contained in:
2022-04-15 11:40:02 +08:00
parent 0a75344b61
commit 2339e1484d
20 changed files with 369 additions and 374 deletions

View File

@@ -61,8 +61,8 @@ android {
//新平台正式 //新平台正式
cube { cube {
flavorDimensions "default" flavorDimensions "default"
versionCode 31 versionCode 33
versionName "4.0" versionName "4.2"
/*********************************极光推送************************************/ /*********************************极光推送************************************/
manifestPlaceholders = [ manifestPlaceholders = [
XG_ACCESS_ID : "1500026372", XG_ACCESS_ID : "1500026372",

View File

@@ -9,7 +9,6 @@ import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseActivity; import com.aoleyun.sn.base.BaseActivity;
import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.SysSettingUtils; import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.Utils;
@@ -213,7 +212,6 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma
//发送设备mac地址和信息 //发送设备mac地址和信息
mCheckNetPresenter.sendMACAddress(); mCheckNetPresenter.sendMACAddress();
if (loocked) { if (loocked) {
SaveListUtils.getList();
//获取系统管控 //获取系统管控
mCheckNetPresenter.setPushTags(); mCheckNetPresenter.setPushTags();
} else { } else {

View File

@@ -399,14 +399,14 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
@Override @Override
public void getDefaultDesktop() { public void getDefaultDesktop() {
if (JGYUtils.isOfficialVersion()) { if (JGYUtils.isOfficialVersion() || JGYUtils.getInstance().getDeviceIsLocked()) {
mView.getDefaultDesktopFinish();
mNetInterfaceManager.getAppLimit(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { mNetInterfaceManager.getAppLimit(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override @Override
public void onComplete() { public void onComplete() {
} }
}); });
mView.getDefaultDesktopFinish();
} else { } else {
mNetInterfaceManager.getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { mNetInterfaceManager.getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override @Override

View File

@@ -66,9 +66,16 @@ public class MainAPresenter implements MainAContact.Presenter {
@Override @Override
public void getLockedState() { public void getLockedState() {
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); NetInterfaceManager.getInstance()
Log.e("getLockedState", "locked: " + locked); .getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED); @Override
public void onComplete() {
Log.e("getLockedState", "onComplete: ");
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
Log.e("getLockedState", "locked: " + locked);
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
}
});
} }
/** /**

View File

@@ -3,11 +3,14 @@ package com.aoleyun.sn.activity.main;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.IBinder;
import android.os.SystemClock; import android.os.SystemClock;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
@@ -30,7 +33,6 @@ import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.service.main.MainService; import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.SysSettingUtils; import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.Utils;
@@ -124,7 +126,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
} }
private MainAPresenter mMainAPresenter; private MainAPresenter mMainAPresenter;
private MMKV mMMKV = MMKV.defaultMMKV();
private boolean updateApp = false; private boolean updateApp = false;
@@ -151,6 +152,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
mMainAPresenter.attachView(this); mMainAPresenter.attachView(this);
mMainAPresenter.setLifecycle(lifecycleSubject); mMainAPresenter.setLifecycle(lifecycleSubject);
NetworkUtils.registerNetworkStatusChangedListener(this); NetworkUtils.registerNetworkStatusChangedListener(this);
registerUpdateReceiver();
JGYUtils.startServices(MainActivity.this); JGYUtils.startServices(MainActivity.this);
getDevicesInfo(); getDevicesInfo();
setStoreUpdateListener(bt_checkupdate); setStoreUpdateListener(bt_checkupdate);
@@ -250,11 +252,29 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override @Override
public void initData() { public void initData() {
Log.e("getMacAddress", Utils.getAndroid10MAC(this)); Log.e("getMacAddress", Utils.getAndroid10MAC(this));
startService(new Intent(MainActivity.this, MainService.class)); Intent intent = new Intent(MainActivity.this, MainService.class);
// registerUpdateReceiver(); bindService(intent, serviceConnect, BIND_AUTO_CREATE);
startService(intent);
mMainAPresenter.getLockedState(); mMainAPresenter.getLockedState();
} }
MainService.MainBinder mMainBinder;
ServiceConnect serviceConnect = new ServiceConnect();
private class ServiceConnect implements ServiceConnection {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.e(TAG, "onServiceConnected: ");
mMainBinder = (MainService.MainBinder) service;
mMainBinder.getService().getLockedState();
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.e(TAG, "onServiceDisconnected: ");
}
}
/** /**
* @param loocked 后台1是锁定底层0是锁定 * @param loocked 后台1是锁定底层0是锁定
*/ */
@@ -264,7 +284,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
if (loocked) { if (loocked) {
iv_locked.setVisibility(View.VISIBLE); iv_locked.setVisibility(View.VISIBLE);
iv_locked.setImageDrawable(getDrawable(R.drawable.locked)); iv_locked.setImageDrawable(getDrawable(R.drawable.locked));
SaveListUtils.getList();
mMainAPresenter.getStudesInfo(false); mMainAPresenter.getStudesInfo(false);
} else { } else {
iv_locked.setVisibility(View.VISIBLE); iv_locked.setVisibility(View.VISIBLE);
@@ -411,12 +430,12 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
JGYUtils.startServices(MainActivity.this);
NetworkUtils.unregisterNetworkStatusChangedListener(this);
mMainAPresenter.detachView();
if (mUpdateReceiver != null) { if (mUpdateReceiver != null) {
unregisterReceiver(mUpdateReceiver); unregisterReceiver(mUpdateReceiver);
} }
JGYUtils.startServices(MainActivity.this);
NetworkUtils.unregisterNetworkStatusChangedListener(this);
mMainAPresenter.detachView();
} }
@Override @Override
@@ -444,9 +463,10 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
private void registerUpdateReceiver() { private void registerUpdateReceiver() {
if (mUpdateReceiver == null) { if (mUpdateReceiver == null) {
mUpdateReceiver = new UpdateReceiver(); mUpdateReceiver = new UpdateReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(UPDATE_LOCKED_STATUS);
} }
IntentFilter filter = new IntentFilter();
filter.addAction(UPDATE_LOCKED_STATUS);
registerReceiver(mUpdateReceiver, filter);
} }
class UpdateReceiver extends BroadcastReceiver { class UpdateReceiver extends BroadcastReceiver {
@@ -457,7 +477,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
if (locked == JGYActions.FRAME_CODE_LOCKED) { if (locked == JGYActions.FRAME_CODE_LOCKED) {
iv_locked.setVisibility(View.VISIBLE); iv_locked.setVisibility(View.VISIBLE);
iv_locked.setImageDrawable(getDrawable(R.drawable.locked)); iv_locked.setImageDrawable(getDrawable(R.drawable.locked));
SaveListUtils.getList();
} else { } else {
iv_locked.setVisibility(View.VISIBLE); iv_locked.setVisibility(View.VISIBLE);
iv_locked.setImageDrawable(getDrawable(R.drawable.unlock)); iv_locked.setImageDrawable(getDrawable(R.drawable.unlock));

View File

@@ -551,24 +551,4 @@ public class BaseApplication extends MultiDexApplication {
} }
} }
boolean isForecDownload = false;
public boolean isDownloading() {
return isForecDownload;
}
public void setDownloadState(boolean state) {
isForecDownload = state;
}
public void checkIsDownloading() {
List<DownloadEntity> list = Aria.download(this).getDRunningTask();
if (list == null || list.size() == 0) {
BaseApplication.getInstance().setDownloadState(false);
} else {
BaseApplication.getInstance().setDownloadState(true);
}
Log.e(TAG, "isDownloading=" + BaseApplication.getInstance().isDownloading());
}
} }

View File

@@ -7,6 +7,7 @@ import android.os.Environment;
import android.util.Log; import android.util.Log;
import com.jakewharton.disklrucache.DiskLruCache; import com.jakewharton.disklrucache.DiskLruCache;
import com.tencent.mmkv.BuildConfig;
import com.tencent.mmkv.MMKV; import com.tencent.mmkv.MMKV;
import org.json.JSONArray; import org.json.JSONArray;
@@ -151,6 +152,9 @@ public class CacheHelper {
while ((len = inputStream.read(buf)) != -1) { while ((len = inputStream.read(buf)) != -1) {
sb.append(new String(buf, 0, len)); sb.append(new String(buf, 0, len));
} }
if (BuildConfig.DEBUG) {
Log.e(TAG, "getAsString: " + sb.toString());
}
return sb.toString(); return sb.toString();

View File

@@ -0,0 +1,45 @@
package com.aoleyun.sn.gson;
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;
public class NullStringToEmptyAdapterFactory<T> implements TypeAdapterFactory {
@Override
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
Class<T> rawType = (Class<T>) type.getRawType();
if (rawType != String.class) {
return null;
}
return (TypeAdapter<T>) new StringAdapter();
}
public static class StringAdapter extends TypeAdapter<String> {
@Override
public String read(JsonReader reader) throws IOException {
if (reader.peek() == JsonToken.NULL) {
reader.nextNull();
return "";
}
return reader.nextString();
}
@Override
public void write(JsonWriter writer, String value) throws IOException {
if (value == null) {
writer.nullValue();
return;
}
writer.value(value);
}
}
}

View File

@@ -42,6 +42,7 @@ import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions; import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.comm.PackageNames; import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.disklrucache.CacheHelper; import com.aoleyun.sn.disklrucache.CacheHelper;
import com.aoleyun.sn.gson.NullStringToEmptyAdapterFactory;
import com.aoleyun.sn.manager.ConnectManager; import com.aoleyun.sn.manager.ConnectManager;
import com.aoleyun.sn.manager.ConnectMode; import com.aoleyun.sn.manager.ConnectMode;
import com.aoleyun.sn.network.api.get.CheckTestUpdateApi; import com.aoleyun.sn.network.api.get.CheckTestUpdateApi;
@@ -102,6 +103,7 @@ import com.aoleyun.sn.utils.Utils;
import com.aoleyun.sn.utils.WiFiUtils; import com.aoleyun.sn.utils.WiFiUtils;
import com.arialyy.aria.core.Aria; import com.arialyy.aria.core.Aria;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@@ -727,7 +729,9 @@ public class NetInterfaceManager {
Type listType = new TypeToken<List<ForceDownloadData>>() { Type listType = new TypeToken<List<ForceDownloadData>>() {
}.getType(); }.getType();
List<ForceDownloadData> APPlist = gson.fromJson(jsonString, listType); List<ForceDownloadData> APPlist = gson.fromJson(jsonString, listType);
JGYUtils.getInstance().installTestAPK(APPlist); if (APPlist != null) {
JGYUtils.getInstance().installTestAPK(APPlist);
}
callback.onComplete(); callback.onComplete();
} }
} }
@@ -769,7 +773,6 @@ public class NetInterfaceManager {
}); });
} }
public void getForceDownload(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) { public void getForceDownload(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
ConnectMode connectMode = ConnectMode.ONE_HOUR; ConnectMode connectMode = ConnectMode.ONE_HOUR;
if (refresh) { if (refresh) {
@@ -786,8 +789,10 @@ public class NetInterfaceManager {
Gson gson = new Gson(); Gson gson = new Gson();
Type listType = new TypeToken<List<ForceDownloadData>>() { Type listType = new TypeToken<List<ForceDownloadData>>() {
}.getType(); }.getType();
List<ForceDownloadData> APPlist = gson.fromJson(jsonString, listType); List<ForceDownloadData> forceDownloadDataList = gson.fromJson(jsonString, listType);
JGYUtils.getInstance().installTestAPK(APPlist); if (forceDownloadDataList != null) {
JGYUtils.getInstance().forceDownload(forceDownloadDataList);
}
callback.onComplete(); callback.onComplete();
} }
} }
@@ -818,18 +823,13 @@ public class NetInterfaceManager {
@Override @Override
public void onNext(@NonNull BaseResponse<List<ForceDownloadData>> forceDownloadBean) { public void onNext(@NonNull BaseResponse<List<ForceDownloadData>> forceDownloadBean) {
Log.e("getForceDownload", "onNext: "); Log.e("getForceDownload", "onNext: " + forceDownloadBean);
if (forceDownloadBean.code == OK) { if (forceDownloadBean.code == OK) {
cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST); cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST);
Log.e("getForceDownload", "isDownloading =" + BaseApplication.getInstance().isDownloading());
List<ForceDownloadData> forceDownloadData = forceDownloadBean.data; List<ForceDownloadData> forceDownloadData = forceDownloadBean.data;
cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, GsonUtils.toJsonString(forceDownloadData)); cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, GsonUtils.toJsonString(forceDownloadData));
BaseApplication.getInstance().checkIsDownloading(); Aria.download(this).resumeAllTask();
if (!BaseApplication.getInstance().isDownloading()) { JGYUtils.getInstance().forceDownload(forceDownloadData);
JGYUtils.getInstance().forceDownload(forceDownloadData);
} else {
Aria.download(this).resumeAllTask();
}
} else if (forceDownloadBean.code == -200) { } else if (forceDownloadBean.code == -200) {
cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, ""); cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, "");
boolean qch_force_app = Settings.System.putString(mContext.getContentResolver(), "qch_force_app", "invalid"); boolean qch_force_app = Settings.System.putString(mContext.getContentResolver(), "qch_force_app", "invalid");
@@ -1143,19 +1143,21 @@ public class NetInterfaceManager {
}.getType(); }.getType();
List<String> list = gson.fromJson(jsonString, type); List<String> list = gson.fromJson(jsonString, type);
PackageManager pm = mContext.getPackageManager(); PackageManager pm = mContext.getPackageManager();
for (String pack : list) { if (list != null) {
try { for (String pack : list) {
// TODO: 2021/5/24 需要后端替换包名,暂时解决方案 try {
if ("com.mediatek.camera".equals(pack)) { // TODO: 2021/5/24 需要后端替换包名,暂时解决方案
pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); if ("com.mediatek.camera".equals(pack)) {
pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
if ("com.android.mms".equals(pack)) {
pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
Log.e("getDesktopIcon", pack);
} catch (Exception e) {
Log.e("getDesktopIcon", "Exception: " + e.getMessage());
} }
if ("com.android.mms".equals(pack)) {
pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
}
pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
Log.e("getDesktopIcon", pack);
} catch (Exception e) {
Log.e("getDesktopIcon", "Exception: " + e.getMessage());
} }
} }
callback.onComplete(); callback.onComplete();
@@ -1255,7 +1257,9 @@ public class NetInterfaceManager {
Type type = new TypeToken<NetAndLaunchBean>() { Type type = new TypeToken<NetAndLaunchBean>() {
}.getType(); }.getType();
NetAndLaunchBean netAndLaunchBean = gson.fromJson(jsonString, type); NetAndLaunchBean netAndLaunchBean = gson.fromJson(jsonString, type);
JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean); if (netAndLaunchBean != null) {
JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean);
}
callback.onComplete(); callback.onComplete();
} }
} }
@@ -1657,6 +1661,13 @@ public class NetInterfaceManager {
}); });
} }
/**
* 获取设备锁定状态
* 不需要缓存
* @param lifecycle
* @param callback
*/
public void getLockedState(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) { public void getLockedState(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getDevicesLockedStateObservable() getDevicesLockedStateObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
@@ -2286,8 +2297,8 @@ public class NetInterfaceManager {
} }
public void getScreenLockState(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, ScreenLockStateListener listener) { public void getScreenLockState(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, ScreenLockStateListener listener) {
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0); int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
if (JGYUtils.isOfficialVersion() || locked == 1) { if (JGYUtils.isOfficialVersion() || locked == JGYActions.FRAME_CODE_UNLOCKED) {
listener.setScreenLockState(false, ""); listener.setScreenLockState(false, "");
return; return;
} }
@@ -2302,7 +2313,7 @@ public class NetInterfaceManager {
if (jsonString == null) { if (jsonString == null) {
getScreenLock(lifecycle, listener); getScreenLock(lifecycle, listener);
} else { } else {
Gson gson = new Gson(); Gson gson = new GsonBuilder().registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory()).create();
Type Type = new TypeToken<ScreenLockState>() { Type Type = new TypeToken<ScreenLockState>() {
}.getType(); }.getType();
ScreenLockState screenLockState = gson.fromJson(jsonString, Type); ScreenLockState screenLockState = gson.fromJson(jsonString, Type);
@@ -2513,10 +2524,10 @@ public class NetInterfaceManager {
if (refresh) { if (refresh) {
connectMode = ConnectMode.ONE_HOUR; connectMode = ConnectMode.ONE_HOUR;
} }
if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_LOCK_SCREEN_STATE, connectMode)) { if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_SN_TIME_CONTROL, connectMode)) {
getSnTimeControl(lifecycle, callback); getSnTimeControl(lifecycle, callback);
} else { } else {
String jsonString = cacheHelper.getAsString(UrlAddress.GET_LOCK_SCREEN_STATE); String jsonString = cacheHelper.getAsString(UrlAddress.GET_SN_TIME_CONTROL);
if (jsonString == null) { if (jsonString == null) {
getSnTimeControl(lifecycle, callback); getSnTimeControl(lifecycle, callback);
} else { } else {

View File

@@ -4,78 +4,110 @@ package com.aoleyun.sn.network;
* @author Administrator * @author Administrator
*/ */
public class UrlAddress { public class UrlAddress {
/*app下载完成发送下载次数*/ /**
public static final String SEND_DOWNLOAD_FILE_INFO = "app/downloadApp"; * 应用策略相关
/*获取系统默认程序*/ */
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
/*下载接口 根据包名匹配 请求后更新下载次数*/
public static final String SEND_DOWNLOAD_TIMES = "count/index";
/*获取设备锁定状态*/
public static final String GET_DEVICES_LOCKED = "lock/index";
/*获取批次*/
public static final String GET_BATCH = "log/getBatch";
/*上传锁屏状态*/
public static final String GET_LOCK_STATE = "Application/getLockState";
/*APPID管控*/
public static final String GET_APPID = "application/index";
/*获取系统设置*/
public static final String GET_FIRMWARE = "firmware/get";
/*上传安装的应用信息*/
public static final String UPLOAD_APPINFO = "log/index";
/*发送设备信息*/
public static final String SEND_DEVICES = "Mac/getMac";
/*发送app使用情况*/
public static final String GET_APP_LOG = "Applog/getAppLog";
/*更新接口*/ /*更新接口*/
public static final String CHECK_UPDATE = "Silent/silent"; public static final String CHECK_UPDATE = "Silent/silent";
/*获取设备标签*/
public static final String GET_DEVICES_TAGS = "Sn/getSnTag";
/*浏览器书签主页设置*/
public static final String SET_HOMEPAG_TAG = "Label";
/*浏览器黑白名单地址*/
public static final String SET_BROWSER_LIST = "browser";
/*app内部网页管控*/
public static final String SET_APPINSIDEWEB = "Appground";
/*强制安装应用*/
public static final String GET_FORCE_INSTALL_LIST = "forceinstall/index";
/*应用白名单*/
public static final String SET_WHITE_PACKAGE_LIST = "firmware/index";
/*获取隐藏桌面图标*/
public static final String GET_HIDE_DESKTOPICON = "Icon";
/*获取应用升级自启*/
public static final String NET_AND_LAUNCH_API = "automatic/get";
/*通过sn获取信息*/
public static final String GET_STUDENTS_INFO = "Sn/getStudent";
/*上传截图*/
public static final String SEND_SCREENSHOT = "Screenshot/addImg";
/*上传我的设备*/
public static final String UPDATE_DEVICEINFO = "Mac/getInfo";
/*获取霸屏状态*/
public static final String GET_LOCK_SCREEN_STATE = "Sn/getSnScreen";
/*获取默认桌面升级*/
public static final String GET_DESKTOP = "Sn/getSnDesktop";
/*获取时间管控*/
public static final String GET_SN_TIME_CONTROL = "Sn/getSnTimeControl";
/*获取顶部app管控*/
public static final String GET_TOP_APP_CONTROL = "Sn/getSnAppControl";
/*获取测试app*/ /*获取测试app*/
public static final String GET_SN_APP_TEST = "Sn/getSnAppTest"; public static final String GET_SN_APP_TEST = "Sn/getSnAppTest";
/*开机动画*/ /*应用白名单*/
public static final String GET_LOGO_IMG = "Sn/getLogoImg"; public static final String SET_WHITE_PACKAGE_LIST = "firmware/index";
/*开发人员选项开关*/
public static final String GET_DEVELOPER = "Sn/getDeveloper";
/*通过固件名获取内置应用*/
public static final String GET_ROM_APP = "And/getFirmwareApp";
/*获取全部应用*/ /*获取全部应用*/
public static final String GET_ALL_APP = "recommend/index"; public static final String GET_ALL_APP = "recommend/index";
/*强制安装应用*/
public static final String GET_FORCE_INSTALL_LIST = "forceinstall/index";
/*通过固件名获取内置应用*/
public static final String GET_ROM_APP = "And/getFirmwareApp";
/*获取应用升级自启*/
public static final String NET_AND_LAUNCH_API = "automatic/get";
/*获取顶部app管控*/
public static final String GET_TOP_APP_CONTROL = "Sn/getSnAppControl";
/*APPID管控*/
public static final String GET_APPID = "application/index";
/*app内部网页管控*/
public static final String SET_APPINSIDEWEB = "Appground";
/*app下载完成发送下载次数*/
@Deprecated
public static final String SEND_DOWNLOAD_FILE_INFO = "app/downloadApp";
/*下载接口 根据包名匹配 请求后更新下载次数*/
public static final String SEND_DOWNLOAD_TIMES = "count/index";
/**
* 设备相关
*/
/*获取设备锁定状态*/
public static final String GET_DEVICES_LOCKED = "lock/index";
/*获取设备标签*/
public static final String GET_DEVICES_TAGS = "Sn/getSnTag";
/*获取批次*/
public static final String GET_BATCH = "log/getBatch";
/*上传安装的应用信息*/
public static final String UPLOAD_APPINFO = "log/index";
/*通过sn获取信息*/
public static final String GET_STUDENTS_INFO = "Sn/getStudent";
/*发送设备信息*/
public static final String SEND_DEVICES = "Mac/getMac";
/*上传我的设备*/
public static final String UPDATE_DEVICEINFO = "Mac/getInfo";
/*发送app使用情况*/
public static final String GET_APP_LOG = "Applog/getAppLog";
/*获取电子书包激活码*/ /*获取电子书包激活码*/
public static final String GET_EBAG_CODE = "And/getEbagCode"; public static final String GET_EBAG_CODE = "And/getEbagCode";
/*恢复出厂设置次数*/ /*恢复出厂设置次数*/
public static final String SEND_RESTORE_TIMES = "And/restore"; public static final String SEND_RESTORE_TIMES = "And/restore";
/*获取远程关机时间*/ /*上传截图*/
public static final String GET_POWEROFF_TIME = "And/getTimedShutdown"; public static final String SEND_SCREENSHOT = "Screenshot/addImg";
/*上传锁屏状态*/
public static final String GET_LOCK_STATE = "Application/getLockState";
/*获取霸屏状态*/
public static final String GET_LOCK_SCREEN_STATE = "Sn/getSnScreen";
/**
* 系统策略相关
*/
/*获取隐藏桌面图标*/
public static final String GET_HIDE_DESKTOPICON = "Icon";
/*获取系统设置*/
public static final String GET_FIRMWARE = "firmware/get";
/*获取时间管控*/
public static final String GET_SN_TIME_CONTROL = "Sn/getSnTimeControl";
/*获取WiFi名和密码*/ /*获取WiFi名和密码*/
public static final String GET_WIFI_ALIAS_PW = "And/SnControl/getWifi"; public static final String GET_WIFI_ALIAS_PW = "And/SnControl/getWifi";
/*获取远程关机时间*/
public static final String GET_POWEROFF_TIME = "And/getTimedShutdown";
/**
* 浏览器策略
*/
/*浏览器书签主页设置*/
public static final String SET_HOMEPAG_TAG = "Label";
/*浏览器黑白名单地址*/
public static final String SET_BROWSER_LIST = "browser";
/**
* 系统定制
*/
/*开机动画*/
public static final String GET_LOGO_IMG = "Sn/getLogoImg";
/*获取默认桌面升级*/
public static final String GET_DESKTOP = "Sn/getSnDesktop";
/*获取系统默认程序*/
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
/**
* 开发人员调试
*/
/*开发人员选项开关*/
public static final String GET_DEVELOPER = "Sn/getDeveloper";
/*获取log任务*/ /*获取log任务*/
public static final String GET_LOG_ORDER = "And/getSnRunLog"; public static final String GET_LOG_ORDER = "And/getSnRunLog";
/*上传log文件*/ /*上传log文件*/
@@ -86,13 +118,10 @@ public class UrlAddress {
/*获取公网IP*/ /*获取公网IP*/
public static final String SHOUHU_CITYJSON = "http://pv.sohu.com/cityjson/"; public static final String SHOUHU_CITYJSON = "http://pv.sohu.com/cityjson/";
/*删除alias*/ /*删除alias*/
public static final String DELETE_JPUSH_ALIAS = "https://device.jpush.cn/v3/aliases/"; public static final String DELETE_JPUSH_ALIAS = "https://device.jpush.cn/v3/aliases/";
/*删除tags*/ /*删除tags*/
public static final String DELETE_JPUSH_TAG = "https://device.jpush.cn/v3/tags/"; public static final String DELETE_JPUSH_TAG = "https://device.jpush.cn/v3/tags/";
@Deprecated
/*删除Aliases*/
public static final String DELETE_GEDEVICE_ALIAS = "Sn/deleteAliases";
} }

View File

@@ -8,6 +8,7 @@ import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded; import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST; import retrofit2.http.POST;
@Deprecated
public interface SendDownloadInfoApi { public interface SendDownloadInfoApi {
@FormUrlEncoded @FormUrlEncoded
@POST(UrlAddress.SEND_DOWNLOAD_FILE_INFO) @POST(UrlAddress.SEND_DOWNLOAD_FILE_INFO)

View File

@@ -13,10 +13,8 @@ import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.comm.PackageNames; import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.CacheUtils;
import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.SaveListUtils;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -65,12 +63,14 @@ public class NewAppReceiver extends BroadcastReceiver {
break; break;
} }
Log.e(TAG, "sendAppInfo: " + state + packageName); Log.e(TAG, "sendAppInfo: " + state + packageName);
JGYUtils.getInstance().checkForceDownload();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (!PackageNames.APPSTORE.equals(packageName) || !PackageNames.DEVICE_INFO.equals(packageName)) { if (!PackageNames.APPSTORE.equals(packageName) || !PackageNames.DEVICE_INFO.equals(packageName)) {
ApkUtils.addShortcut(context); ApkUtils.addShortcut(context);
ApkUtils.RemoveTask(context, packageName); ApkUtils.RemoveTask(context, packageName);
} }
JGYUtils.getInstance().wakeUpAppstore(); JGYUtils.getInstance().wakeUpAppstore();
//启动教官壹 //启动教官壹
} }
newAppListener.setNewAppListener(packageName); newAppListener.setNewAppListener(packageName);
@@ -95,7 +95,6 @@ public class NewAppReceiver extends BroadcastReceiver {
@Override @Override
public void onNext(@NonNull String s) { public void onNext(@NonNull String s) {
Log.e(TAG, "sendAppInfo: onNext: " + s); Log.e(TAG, "sendAppInfo: onNext: " + s);
SaveListUtils.getDownLoadList().remove(s);
NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() { NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() {
@Override @Override
public void onComplete() { public void onComplete() {

View File

@@ -491,11 +491,6 @@ public class GuardService extends Service {
Log.e(TAG, "taskComplete: " + filepath); Log.e(TAG, "taskComplete: " + filepath);
} else if (filepath.endsWith(".apk")) { } else if (filepath.endsWith(".apk")) {
new Thread(() -> ApkUtils.installApp(GuardService.this, filepath)).start(); new Thread(() -> ApkUtils.installApp(GuardService.this, filepath)).start();
List<DownloadEntity> list = Aria.download(this).getDRunningTask();
if (list == null || list.size() == 0) {
BaseApplication.getInstance().setDownloadState(false);
Log.e("taskComplete", "isDownloading=" + BaseApplication.getInstance().isDownloading());
}
} }
NetInterfaceManager.getInstance() NetInterfaceManager.getInstance()
.getSendTimesApi() .getSendTimesApi()
@@ -525,32 +520,32 @@ public class GuardService extends Service {
}); });
int userId = (int) SPUtils.get(GuardService.this, CommonConfig.ADMIN_ID, 0); int userId = (int) SPUtils.get(GuardService.this, CommonConfig.ADMIN_ID, 0);
long appSize = task.getFileSize(); long appSize = task.getFileSize();
NetInterfaceManager.getInstance() // NetInterfaceManager.getInstance()
.getSendInfoApi() // .getSendInfoApi()
.sendDownloadTimes(NetInterfaceManager.HTTP_KEY, Utils.getSerial(), userId, app_package, appSize) // .sendDownloadTimes(NetInterfaceManager.HTTP_KEY, Utils.getSerial(), userId, app_package, appSize)
.subscribeOn(Schedulers.io()) // .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) // .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BaseResponse>() { // .subscribe(new Observer<BaseResponse>() {
@Override // @Override
public void onSubscribe(Disposable d) { // public void onSubscribe(Disposable d) {
Log.e("SEND_DOWNLOAD_FILE_INFO", "onSubscribe: "); // Log.e("SEND_DOWNLOAD_FILE_INFO", "onSubscribe: ");
} // }
//
@Override // @Override
public void onNext(BaseResponse baseResponse) { // public void onNext(BaseResponse baseResponse) {
Log.e("SEND_DOWNLOAD_FILE_INFO", "onNext: " + baseResponse.msg); // Log.e("SEND_DOWNLOAD_FILE_INFO", "onNext: " + baseResponse.msg);
} // }
//
@Override // @Override
public void onError(Throwable e) { // public void onError(Throwable e) {
Log.e("SEND_DOWNLOAD_FILE_INFO", "onError: " + e.getMessage()); // Log.e("SEND_DOWNLOAD_FILE_INFO", "onError: " + e.getMessage());
} // }
//
@Override // @Override
public void onComplete() { // public void onComplete() {
Log.e("SEND_DOWNLOAD_FILE_INFO", "onComplete: "); // Log.e("SEND_DOWNLOAD_FILE_INFO", "onComplete: ");
} // }
}); // });
} else if (filepath.endsWith(".zip")) { } else if (filepath.endsWith(".zip")) {
Log.e("taskComplete", "下载完成:" + task.getPercent() + ":" + task.getExtendField()); Log.e("taskComplete", "下载完成:" + task.getPercent() + ":" + task.getExtendField());
JGYUtils.getInstance().setBootanimation(task.getFilePath()); JGYUtils.getInstance().setBootanimation(task.getFilePath());

View File

@@ -62,12 +62,26 @@ public class MainSPresenter implements MainSContact.Presenter {
this.mView = null; this.mView = null;
} }
private boolean requesting = false;
public boolean isRequesting() {
return requesting;
}
public void setRequesting(boolean requesting) {
this.requesting = requesting;
}
public long responseTime;
/** /**
* 1 * 1
*/ */
@Override @Override
public void getLockedState(String key) { public void getLockedState(String key) {
Log.e(TAG, "getLockedState: " + key); Log.e(TAG, "getLockedState: " + key);
requesting = true;
responseTime = System.currentTimeMillis();
NetInterfaceManager.getInstance() NetInterfaceManager.getInstance()
.getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { .getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override @Override
@@ -154,7 +168,6 @@ public class MainSPresenter implements MainSContact.Presenter {
public void updateDeviceInfo() { public void updateDeviceInfo() {
if (JGYUtils.isOfficialVersion()) { if (JGYUtils.isOfficialVersion()) {
mView.updateDeviceInfoFinish(); mView.updateDeviceInfoFinish();
return;
} }
NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() { NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() {
@Override @Override
@@ -229,32 +242,32 @@ public class MainSPresenter implements MainSContact.Presenter {
@Override @Override
public void getDefaultDesktop() { public void getDefaultDesktop() {
if (JGYUtils.isOfficialVersion()) { if (JGYUtils.isOfficialVersion() || JGYUtils.getInstance().getDeviceIsLocked()) {
mView.getDefaultDesktopFinish(); mView.getDefaultDesktopFinish();
return; } else {
NetInterfaceManager.getInstance()
.getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.getDefaultDesktopFinish();
}
});
} }
NetInterfaceManager.getInstance()
.getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.getDefaultDesktopFinish();
}
});
} }
@Override @Override
public void setLogoImg() { public void setLogoImg() {
if (JGYUtils.isOfficialVersion()) { if (JGYUtils.isOfficialVersion()) {
mView.setLogoImgFinish(); mView.setLogoImgFinish();
return; } else {
NetInterfaceManager.getInstance()
.setLogoImg(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.setLogoImgFinish();
}
});
} }
NetInterfaceManager.getInstance()
.setLogoImg(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override
public void onComplete() {
mView.setLogoImgFinish();
}
});
} }
@@ -308,11 +321,11 @@ public class MainSPresenter implements MainSContact.Presenter {
public void getBrowserBookmarks() { public void getBrowserBookmarks() {
NetInterfaceManager.getInstance() NetInterfaceManager.getInstance()
.getBookMarkBlackWhiteList(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { .getBookMarkBlackWhiteList(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
@Override @Override
public void onComplete() { public void onComplete() {
mView.getBrowserBookmarksFinish(); mView.getBrowserBookmarksFinish();
} }
}); });
} }
@Override @Override

View File

@@ -17,10 +17,12 @@ import android.net.NetworkInfo;
import android.net.wifi.WifiInfo; import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Binder;
import android.os.Build; import android.os.Build;
import android.os.Debug; import android.os.Debug;
import android.os.Handler; 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;
@@ -54,7 +56,6 @@ import com.aoleyun.sn.utils.CacheUtils;
import com.aoleyun.sn.utils.ForegroundAppUtil; import com.aoleyun.sn.utils.ForegroundAppUtil;
import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.SysSettingUtils; import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.TimeUtils; import com.aoleyun.sn.utils.TimeUtils;
import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.ToastUtil;
@@ -317,7 +318,24 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override @Override
public IBinder onBind(Intent intent) { public IBinder onBind(Intent intent) {
return null; return mMainBinder;
}
public MainBinder mMainBinder = new MainBinder();
public class MainBinder extends Binder {
public MainService getService() {
return MainService.this;
}
}
public void getLockedState() {
Log.e(TAG, "getLockedState: MainBinder");
if (!mPresenter.isRequesting()) {
mPresenter.getLockedState("MainBinder");
} else {
Log.e(TAG, "getLockedState: MainSPresenter is requesting now");
}
} }
@Override @Override
@@ -333,8 +351,10 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
task.execute("ntp.aliyun.com"); task.execute("ntp.aliyun.com");
//根据要求卸载这两个应用 //根据要求卸载这两个应用
ApkUtils.UninstallAPP(this, "com.joytv.live"); if (!JGYUtils.getInstance().getDeviceIsLocked()) {
ApkUtils.UninstallAPP(this, "com.tencent.android.qqdownloader"); ApkUtils.UninstallAPP(this, "com.joytv.live");
ApkUtils.UninstallAPP(this, "com.tencent.android.qqdownloader");
}
try { try {
getPackageManager().setApplicationEnabledSetting("com.android.email", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); getPackageManager().setApplicationEnabledSetting("com.android.email", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
@@ -375,8 +395,8 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
timeChangedStart.onstar(System.currentTimeMillis()); timeChangedStart.onstar(System.currentTimeMillis());
setStatusbar(); setStatusbar();
setFloatingWindow(this); setFloatingWindow(this);
notificationManager = NotificationManagerCompat.from(this);
createNotificationChannel(); createNotificationChannel();
sendSimpleNotification();
} }
@Override @Override
@@ -430,6 +450,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
} }
} }
private NotificationManagerCompat notificationManager;
private int NotificationID = 1;
private void sendSimpleNotification() { private void sendSimpleNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID") NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
.setSmallIcon(R.mipmap.ic_launcher) .setSmallIcon(R.mipmap.ic_launcher)
@@ -439,10 +462,8 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
.setShowWhen(false) .setShowWhen(false)
.setOngoing(true) .setOngoing(true)
.setPriority(NotificationCompat.PRIORITY_MAX); .setPriority(NotificationCompat.PRIORITY_MAX);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
// notificationId is a unique int for each notification that you must define // notificationId is a unique int for each notification that you must define
notificationManager.notify(1, builder.build()); notificationManager.notify(NotificationID, builder.build());
} }
private void addShortcut() { private void addShortcut() {
@@ -814,13 +835,17 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override @Override
public void setLockedState(boolean loocked) { public void setLockedState(boolean loocked) {
Log.e(TAG, "setLockedState: " + loocked);
if (loocked) { if (loocked) {
ToastUtil.betaShow("设备已上锁"); ToastUtil.betaShow("设备已上锁");
sendSimpleNotification();
mPresenter.setPushTags(); mPresenter.setPushTags();
mPresenter.getDeveloper(); mPresenter.getDeveloper();
SaveListUtils.getList(); ApkUtils.UninstallAPP(this, "com.joytv.live");
ApkUtils.UninstallAPP(this, "com.tencent.android.qqdownloader");
} else { } else {
ToastUtil.betaShow("设备已解锁"); ToastUtil.betaShow("设备已解锁");
notificationManager.cancel(NotificationID);
SysSettingUtils.setEnableSetting(this); SysSettingUtils.setEnableSetting(this);
mPresenter.checkAoleyunUpdate(); mPresenter.checkAoleyunUpdate();
} }
@@ -911,7 +936,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override @Override
public void setLogoImgFinish() { public void setLogoImgFinish() {
mPresenter.setRequesting(false);
Log.e(TAG, "setLogoImgFinish: "); Log.e(TAG, "setLogoImgFinish: ");
Log.e(TAG, "SettingFinish: " + (System.currentTimeMillis() - mPresenter.responseTime) + " ms");
} }
@Override @Override
@@ -996,7 +1023,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override @Override
public void setWiFiPasswd() { public void setWiFiPasswd() {
mPresenter.setRequesting(false);
Log.e(TAG, "setWiFiPasswd: "); Log.e(TAG, "setWiFiPasswd: ");
Log.e(TAG, "SettingFinish: " + (System.currentTimeMillis() - mPresenter.responseTime) + " ms");
} }
@Override @Override

View File

@@ -27,6 +27,7 @@ import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseApplication; import com.aoleyun.sn.base.BaseApplication;
import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.RemoteDebug; import com.aoleyun.sn.bean.RemoteDebug;
import com.aoleyun.sn.bean.ScreenLockState;
import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions; import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.disklrucache.CacheHelper; import com.aoleyun.sn.disklrucache.CacheHelper;
@@ -40,10 +41,10 @@ import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.CacheUtils; import com.aoleyun.sn.utils.CacheUtils;
import com.aoleyun.sn.utils.CmdUtil; import com.aoleyun.sn.utils.CmdUtil;
import com.aoleyun.sn.utils.ForegroundAppUtil; import com.aoleyun.sn.utils.ForegroundAppUtil;
import com.aoleyun.sn.utils.GsonUtils;
import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.MySQLData; import com.aoleyun.sn.utils.MySQLData;
import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.ServiceAliveUtils; import com.aoleyun.sn.utils.ServiceAliveUtils;
import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.Utils;
@@ -457,10 +458,6 @@ public class MessageReceiver extends XGPushBaseReceiver {
JSONObject jsonObject = JSON.parseObject(extras); JSONObject jsonObject = JSON.parseObject(extras);
String pkg = jsonObject.getString("package_name"); String pkg = jsonObject.getString("package_name");
if (TextUtils.isEmpty(pkg)) return; if (TextUtils.isEmpty(pkg)) return;
if (SaveListUtils.getlist().contains(pkg)) {
SaveListUtils.getlist().remove(pkg);
}
SaveListUtils.sendForceAPP(mContext);
ApkUtils.UninstallAPP(mContext, pkg); ApkUtils.UninstallAPP(mContext, pkg);
} }
NetInterfaceManager.getInstance().getNetAndLaunchSetting(); NetInterfaceManager.getInstance().getNetAndLaunchSetting();
@@ -489,7 +486,9 @@ public class MessageReceiver extends XGPushBaseReceiver {
break; break;
case MSG_RESET: case MSG_RESET:
ToastUtil.betaShow("收到管控:设备重置"); ToastUtil.betaShow("收到管控:设备重置");
JGYUtils.getInstance().cleanAoleLauncher3Cache();
Utils.doMasterClear(mContext); Utils.doMasterClear(mContext);
MainService.mPresenter.getLockedState("MSG_PUSH_RESET");
break; break;
case MSG_INSTALL: case MSG_INSTALL:
ToastUtil.betaShow("收到管控:应用安装"); ToastUtil.betaShow("收到管控:应用安装");
@@ -728,6 +727,10 @@ public class MessageReceiver extends XGPushBaseReceiver {
if (ServiceAliveUtils.isServiceAlive(mContext)) { if (ServiceAliveUtils.isServiceAlive(mContext)) {
mContext.startService(new Intent(mContext, MainService.class)); mContext.startService(new Intent(mContext, MainService.class));
} }
ScreenLockState screenLockState = new ScreenLockState();
screenLockState.setIs_screen_lock(state);
screenLockState.setName(name);
cacheHelper.put(UrlAddress.GET_LOCK_SCREEN_STATE, GsonUtils.toJsonString(screenLockState));
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra("name", name); intent.putExtra("name", name);
if (state == 1) { if (state == 1) {
@@ -761,8 +764,6 @@ public class MessageReceiver extends XGPushBaseReceiver {
packageObj.put("MD5", MD5); packageObj.put("MD5", MD5);
Log.e(TAG, "doDownloadAndInstall: app_package:" + app_package); Log.e(TAG, "doDownloadAndInstall: app_package:" + app_package);
Log.e(TAG, "doDownloadAndInstall: app_url:" + app_url); Log.e(TAG, "doDownloadAndInstall: app_url:" + app_url);
SaveListUtils.addList(app_package);
SaveListUtils.sendForceAPP(mContext);
PackageInfo packageInfo = null; PackageInfo packageInfo = null;
try { try {
packageInfo = mPackageManager.getPackageInfo(app_package, 0); packageInfo = mPackageManager.getPackageInfo(app_package, 0);
@@ -771,10 +772,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
} }
if (packageInfo == null) { if (packageInfo == null) {
Log.e(TAG, "doDownloadAndInstall: " + app_package + "未安装"); Log.e(TAG, "doDownloadAndInstall: " + app_package + "未安装");
if (!SaveListUtils.isDownLoading(app_url)) {
Log.e(TAG, "doDownloadAndInstall: " + app_package + "开始下载");
Utils.ariaDownload(mContext, app_url, packageObj); Utils.ariaDownload(mContext, app_url, packageObj);
}
} else { } else {
long appVersionCode; long appVersionCode;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
@@ -783,9 +781,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
appVersionCode = packageInfo.versionCode; appVersionCode = packageInfo.versionCode;
} }
if (app_version_code > appVersionCode) { if (app_version_code > appVersionCode) {
if (!SaveListUtils.isDownLoading(app_url)) {
Utils.ariaDownload(mContext, app_url, packageObj); Utils.ariaDownload(mContext, app_url, packageObj);
}
} else { } else {
Log.e(TAG, "doDownloadAndInstall: " + app_package + "已安装最新版"); Log.e(TAG, "doDownloadAndInstall: " + app_package + "已安装最新版");
} }

View File

@@ -16,12 +16,10 @@ public class GsonUtils {
} }
// TODO: 2022/3/31 暂时没有实现 // TODO: 2022/3/31 暂时没有实现
public static <E> E getJsonFromType(String jsonString) { public static <T> T getJsonFromType(String jsonString, Class clazz) {
Gson gson = new Gson(); Gson gson = new Gson();
Type Type = new TypeToken<E>() { T t = (T) gson.fromJson(jsonString, clazz);
}.getType(); return t;
E e = gson.fromJson(jsonString, Type);
return e;
} }
public static String toJsonString(Object o) { public static String toJsonString(Object o) {

View File

@@ -35,6 +35,9 @@ import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions; import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.comm.PackageNames; import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.disklrucache.CacheHelper;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.UrlAddress;
import com.aoleyun.sn.receiver.BootReceiver; import com.aoleyun.sn.receiver.BootReceiver;
import com.blankj.utilcode.util.FileUtils; import com.blankj.utilcode.util.FileUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
@@ -106,6 +109,9 @@ public class JGYUtils {
public static String ZhanruiTag = "展锐cube"; public static String ZhanruiTag = "展锐cube";
public static String Other = "其他"; public static String Other = "其他";
private CacheHelper cacheHelper;
static { static {
System.loadLibrary("jgy"); System.loadLibrary("jgy");
} }
@@ -115,7 +121,7 @@ public class JGYUtils {
throw new RuntimeException("Context is NULL"); throw new RuntimeException("Context is NULL");
} }
this.mContext = context; this.mContext = context;
this.cacheHelper = new CacheHelper(context);
} }
public static void init(Context context) { public static void init(Context context) {
@@ -173,6 +179,11 @@ public class JGYUtils {
return path + File.separator; return path + File.separator;
} }
public boolean getDeviceIsLocked() {
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
return locked == JGYActions.FRAME_CODE_LOCKED;
}
public int getBatteryLevel() { public int getBatteryLevel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
BatteryManager batteryManager = (BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE); BatteryManager batteryManager = (BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE);
@@ -325,8 +336,6 @@ public class JGYUtils {
} }
} }
} }
@SuppressLint("NewApi") @SuppressLint("NewApi")
@@ -958,11 +967,26 @@ public class JGYUtils {
Log.e("writeAppPackageList: ", "qch_app_forbid is :" + b + " " + Settings.System.getString(mContext.getContentResolver(), "qch_app_forbid")); Log.e("writeAppPackageList: ", "qch_app_forbid is :" + b + " " + Settings.System.getString(mContext.getContentResolver(), "qch_app_forbid"));
} }
public void checkForceDownload() {
String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST);
//为 "" 是已经请求成功的
if (jsonString == null) {
NetInterfaceManager.getInstance().getForceDownload();
} else {
Gson gson = new Gson();
Type listType = new TypeToken<List<ForceDownloadData>>() {
}.getType();
List<ForceDownloadData> forceDownloadData = gson.fromJson(jsonString, listType);
if (forceDownloadData != null) {
JGYUtils.getInstance().forceDownload(forceDownloadData);
}
}
}
public void forceDownload(List<ForceDownloadData> data) { public void forceDownload(List<ForceDownloadData> data) {
if (data == null || data.size() <= 0) { if (data == null || data.size() <= 0) {
return; return;
} }
getSelfDownload(data);
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for (int i = 0; i < data.size(); i++) { for (int i = 0; i < data.size(); i++) {
ForceDownloadData forceDownloadData = data.get(i); ForceDownloadData forceDownloadData = data.get(i);
@@ -1008,31 +1032,8 @@ public class JGYUtils {
Utils.ariaDownload(mContext, app_url, jsonObject); Utils.ariaDownload(mContext, app_url, jsonObject);
} }
} }
SaveListUtils.setList(list);
SaveListUtils.sendForceAPP(mContext);
} }
/**
* 获取教管壹下载,没什么用了
*
* @param forceDownloadDataList
*/
private void getSelfDownload(List<ForceDownloadData> forceDownloadDataList) {
for (ForceDownloadData forceDownloadData : forceDownloadDataList) {
if (PackageNames.OLD_APPSTORE.equals(forceDownloadData.getApp_package())) {
if (!ApkUtils.isAvailable(mContext, PackageNames.OLD_APPSTORE)) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("app_name", forceDownloadData.getApp_name());
jsonObject.put("app_package", forceDownloadData.getApp_package());
Utils.ariaDownload(mContext, forceDownloadData.getApp_url(), jsonObject);
}
} else {
// Log.e("fht", "未上传应用");
}
}
}
/** /**
* @param jsonObject 安装应用 * @param jsonObject 安装应用
*/ */
@@ -1150,14 +1151,10 @@ public class JGYUtils {
versionCode = info.versionCode; versionCode = info.versionCode;
} }
if (app_version_code > versionCode) { if (app_version_code > versionCode) {
if (!SaveListUtils.isDownLoading(app_url)) {
Utils.ariaDownload(mContext, app_url, jsonObject); Utils.ariaDownload(mContext, app_url, jsonObject);
}
} }
} else { } else {
if (!SaveListUtils.isDownLoading(app_url)) {
Utils.ariaDownload(mContext, app_url, jsonObject); Utils.ariaDownload(mContext, app_url, jsonObject);
}
} }
} }

View File

@@ -1,125 +0,0 @@
package com.aoleyun.sn.utils;
import android.content.Context;
import android.provider.Settings;
import android.util.Log;
import com.aoleyun.sn.comm.CommonConfig;
import com.blankj.utilcode.util.SPStaticUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
public class SaveListUtils {
private static List<String> downLoadList = new ArrayList<>();
private static List<String> forceList = new ArrayList<>();
public static List<String> getList() {
String data = SPStaticUtils.getString(CommonConfig.FORCE_INSTALL);
Log.e("SaveListUtils", data);
Gson gson = new Gson();
Type listType = new TypeToken<List<String>>() {
}.getType();
List<String> list = gson.fromJson(data, listType);
if (list != null && list.size() > 0) {
Log.e("fht", "getList:" + list.toString());
} else {
list = new ArrayList<>();
}
return list;
}
public static void addToList(String data) {
List<String> list = getList();
if (list == null) {
list = new ArrayList<>();
}
if (!list.contains(data)) {
list.add(data);
Gson gson = new Gson();
String gsonData = gson.toJson(list);
SPStaticUtils.put(CommonConfig.FORCE_INSTALL, gsonData);
}
Log.e("fht", "addToList:" + list.toString());
}
public static void setList(List<String> strings) {
forceList.clear();
forceList = strings;
for (String pkg : ApkUtils.desktopAPP) {
if (!forceList.contains(pkg)) {
forceList.add(pkg);
}
}
Gson gson = new Gson();
String gsonData = gson.toJson(forceList);
SPStaticUtils.put(CommonConfig.FORCE_INSTALL, gsonData);
Log.e("fht", "setList:" + forceList.toString());
}
public static void addList(String s) {
if (!forceList.contains(s)) {
forceList.add(s);
}
Log.e("fht", "addList:" + forceList.toString());
}
public static void setList() {
Gson gson = new Gson();
String gsonData = gson.toJson(forceList);
SPStaticUtils.put(CommonConfig.FORCE_INSTALL, gsonData);
}
public static List<String> getlist() {
return forceList;
}
public static void sendForceAPP(Context context) {
StringBuilder txtBuilder = new StringBuilder();
for (String s : forceList) {
if (txtBuilder.length() > 0) {
txtBuilder.append(",");
}
txtBuilder.append(s);
}
String txt = txtBuilder.toString();
if (txt.length() > 0) {
boolean qch_force_app = Settings.System.putString(context.getContentResolver(), "qch_force_app", txt);
Log.e("fht", "qch_force_app:" + qch_force_app + ":" + txt);
} else {
boolean qch_force_app = Settings.System.putString(context.getContentResolver(), "qch_force_app", "invalid");
Log.e("fht", "qch_force_app:" + qch_force_app + ":" + txt);
}
setList();
}
public static List<String> getDownLoadList() {
return downLoadList;
}
public static void addDownLoadList(String packageName) {
if (downLoadList == null) {
downLoadList = new ArrayList<>();
downLoadList.add(packageName);
} else {
if (!downLoadList.contains(packageName)) {
downLoadList.add(packageName);
}
}
}
public static boolean isDownLoading(String packageName) {
if (downLoadList.contains(packageName)) {
return true;
} else return false;
}
}

View File

@@ -1038,7 +1038,6 @@ public class Utils {
.ignoreFilePathOccupy() .ignoreFilePathOccupy()
.setExtendField(jsonObject.toJSONString()) .setExtendField(jsonObject.toJSONString())
.create(); //启动下载} .create(); //启动下载}
// SaveListUtils.addDownLoadList(app_package);
// } // }
} }
} else { } else {