version:2.9

fix:优化接口,增加检测其他应用
update:
This commit is contained in:
2022-03-01 10:34:46 +08:00
parent 97bc5d6a75
commit ee731661fc
55 changed files with 1165 additions and 1342 deletions

View File

@@ -34,6 +34,8 @@ import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.ServiceAliveUtils;
import com.aoleyun.sn.utils.Utils;
import com.blankj.utilcode.util.PathUtils;
import com.google.gson.Gson;
import com.tencent.mmkv.MMKV;
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
import java.io.File;
@@ -78,7 +80,7 @@ public class SplashActivity extends AppCompatActivity {
private void initView() {
if (BuildConfig.DEBUG) {
JGYUtils.getInstance().cleanBackgroundMemory();
// JGYUtils.getInstance().cleanBackgroundMemory();
// NetInterfaceManager.getInstance().uploadLogFile();
bt_log = findViewById(R.id.bt_log);
bt_log.setVisibility(View.VISIBLE);
@@ -148,7 +150,8 @@ public class SplashActivity extends AppCompatActivity {
// mAm.killBackgroundProcesses("com.android.documentsui");
// BaseApplication.cleanJpushAlias();
// BaseApplication.cleanJpushTag();
Log.e(TAG, "debugTest: SPUtils all " + SPUtils.getAll(this));
Log.e(TAG, "debugTest: " + new Gson().toJson(MMKV.defaultMMKV().allKeys()));
Log.e(TAG, "debugTest: SPUtils all " + new Gson().toJson(SPUtils.getAll(this)));
try {
PackageManager packageManager = getPackageManager();
packageManager.setApplicationEnabledSetting(PackageNames.OLD_DEVICE_INFO, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);

View File

@@ -681,38 +681,33 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
NetInterfaceManager.getInstance()
.getAppLimitObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(new Observer<ResponseBody>() {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e(TAG + ":" + "getAppLimit", "onSubscribe: ");
}
@Override
public void onNext(@NonNull ResponseBody responseBody) {
public void onNext(@NonNull BaseResponse baseResponse) {
requestSucceeded = true;
try {
String bodyString = responseBody.string();
Log.e(TAG + ":" + "getAppLimit", "onNext: " + bodyString);
JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject();
int code = jsonObject.get("code").getAsInt();
if (code == OK) {
String data = jsonObject.get("data").getAsJsonObject().get("result").getAsString();
//开机图标
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
JGYUtils.getInstance().writeAppPackageList(mContext, data);
mView.getAppLimitFinish(data);
} else {
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, " ");
JGYUtils.getInstance().writeAppPackageList(mContext, "");
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
Log.e(TAG + ":" + "getAppLimit", "onNext: " + bodyString);
mView.getAppLimitFinish("");
}
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG + ":" + "getAppLimit", "onNext: IOException: " + e.getMessage());
Log.e(TAG + ":" + "getAppLimit", "onNext: " + baseResponse);
JsonObject jsonObject = JsonParser.parseString(baseResponse.data.toString()).getAsJsonObject();
int code = baseResponse.code;
if (code == OK) {
String data = jsonObject.get("result").getAsString();
//开机图标
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
JGYUtils.getInstance().writeAppPackageList(mContext, data);
mView.getAppLimitFinish(data);
} else {
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, " ");
JGYUtils.getInstance().writeAppPackageList(mContext, "");
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
Log.e(TAG + ":" + "getAppLimit", "onNext: " + baseResponse);
mView.getAppLimitFinish("");
}
}
@Override
@@ -732,60 +727,11 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
@Override
public void getDeviceBatch(String packageList) {
// if (JGYUtils.isOfficialVersion() || TextUtils.isEmpty(packageList)) {
// mView.getDeviceBatchFinished();
// return;
// }
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
Log.e(TAG, "getDeviceBatch: " + locked);
if (locked == 0) {
// NetInterfaceManager.getInstance()
// .getBatchObservable()
// .observeOn(Schedulers.io())
// .subscribe(new Observer<ResponseBody>() {
// @Override
// public void onSubscribe(@NonNull Disposable d) {
// Log.e(TAG+":"+"getDeviceBatch", "onSubscribe: ");
// }
//
// @Override
// public void onNext(@NonNull ResponseBody responseBody) {
// Log.e(TAG+":"+"getDeviceBatch", "onNext: ");
// try {
// String respons = responseBody.string();
// JSONObject jsonObject = JSON.parseObject(respons);
// int code = jsonObject.getInteger("code");
// if (code == OK) {
// String data = jsonObject.getString("data");
// List<Batch> batchList = JSON.parseArray(data, Batch.class);
// if (null != batchList && batchList.size() > 1) {
// Log.e(TAG+":"+"getDeviceBatch", "onNext: " + "deleteOtherApp");
// if (!BuildConfig.DEBUG) {
JGYUtils.getInstance().deleteOtherApp();
// }
// } else {
// Log.e(TAG+":"+"getDeviceBatch", "批次为空");
// Log.e(TAG+":"+"getDeviceBatch", "onNext: respons:" + respons);
// }
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
//
// @Override
// public void onError(@NonNull Throwable e) {
// Log.e(TAG+":"+"getDeviceBatch", "onError: " + e.getMessage());
// onComplete();
// }
//
// @Override
// public void onComplete() {
// Log.e(TAG+":"+"getDeviceBatch", "onComplete: ");
mView.getDeviceBatchFinish();
// }
// });
// mView.getDeviceBatchFinished();
}
}

View File

@@ -9,8 +9,6 @@ import com.aoleyun.sn.base.BaseView;
public class MainAContact {
public interface Presenter extends BasePresenter<MainView> {
/*设置二维码*/
void getQRImage(String mac);
/*获取学生信息*/
void getStudesInfo();
/*获取设备锁定状态*/
@@ -20,10 +18,8 @@ public class MainAContact {
}
public interface MainView extends BaseView {
/*获取二维码*/
void setQRImage(Bitmap qrImage);
/*设置账户类型*/
void settrade_type(int tradeType);
void settradeType(int tradeType);
/*设置批次信息*/
void setBatchText(String text, int visibility);
/*设置班级信息*/
@@ -34,6 +30,7 @@ public class MainAContact {
void setNameText(String text, int visibility);
/*设置头像*/
void setHead(String url);
/*获取设备锁定状态*/
void setLockedState(boolean loocked);
/*手动获取设备信息更新*/

View File

@@ -19,6 +19,7 @@ import com.aoleyun.sn.utils.SPUtils;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
@@ -38,6 +39,7 @@ public class MainAPresenter implements MainAContact.Presenter {
private static final String TAG = MainAPresenter.class.getSimpleName();
private MainAContact.MainView mView;
private Context mContext;
private MMKV mMMKV = MMKV.defaultMMKV();
public static final String GET_SETTING_FINISH_TIME = "GET_SETTING_FINISH_TIME";
@@ -46,6 +48,9 @@ public class MainAPresenter implements MainAContact.Presenter {
private final String DEFAULT_INFO = "暂无信息";
private final int OK = 200;
private static final long ONE_MINUTE_TIME = 60 * 1000;
private static final long TEN_MINUTE_TIME = ONE_MINUTE_TIME * 10;
private final static int NOTFOUND = -300;
private BehaviorSubject<ActivityEvent> lifecycle;
@@ -63,10 +68,6 @@ public class MainAPresenter implements MainAContact.Presenter {
Log.e(TAG, "MainSPresenter: " + context.getClass());
}
public boolean isRequestSucceeded() {
return requestSucceeded;
}
@Override
public void attachView(@androidx.annotation.NonNull MainAContact.MainView view) {
this.mView = view;
@@ -79,23 +80,7 @@ public class MainAPresenter implements MainAContact.Presenter {
private native String getAeskey();
@Override
public void getQRImage(String mac) {
// Log.e(TAG, "getQRImage: " + mac);
// JsonObject jsonObject = new JsonObject();
// jsonObject.addProperty("sn", Utils.getSerial());
// jsonObject.addProperty("mac", mac);
// String json = jsonObject.toString();
// String content = mac;
// try {
// content = CXAESUtil.encrypt(getAeskey(), json);
// Log.e(TAG, "getQRImage: " + content);
// } catch (Exception e) {
// Log.e(TAG, "getQRImage: " + e.getMessage());
// e.printStackTrace();
// }
// mView.setQRImage(JGYUtils.getInstance().createQRImage(content, 300, 300));
}
private static final String GET_STUDES_INFO_TIME = "getStudesInfo_key";
/**
* 通过sn获取用户信息
@@ -103,6 +88,10 @@ public class MainAPresenter implements MainAContact.Presenter {
@Override
public void getStudesInfo() {
setState();
long lastTime = mMMKV.decodeLong(GET_STUDES_INFO_TIME, 0);
if (System.currentTimeMillis() - TEN_MINUTE_TIME < lastTime) {
return;
}
NetInterfaceManager.getInstance()
.getStudesInfoObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
@@ -114,11 +103,12 @@ public class MainAPresenter implements MainAContact.Presenter {
@Override
public void onNext(@NonNull BaseResponse<StudentsInfo> studentsInfoBaseResponse) {
mMMKV.encode(GET_STUDES_INFO_TIME, System.currentTimeMillis());
requestSucceeded = true;
Log.e(TAG + ":" + "getStudesInfo", "onNext: " + studentsInfoBaseResponse.data);
if (studentsInfoBaseResponse.code == OK) {
int trade_type = studentsInfoBaseResponse.data.getTrade_type();
mView.settrade_type(trade_type);
mView.settradeType(trade_type);
String sno = studentsInfoBaseResponse.data.getSno();
String realname = studentsInfoBaseResponse.data.getRealname();
String classes = studentsInfoBaseResponse.data.getClasses();
@@ -162,9 +152,6 @@ public class MainAPresenter implements MainAContact.Presenter {
SPUtils.put(mContext, CommonConfig.ADMIN_ID, studentsInfoBaseResponse.data.getAdmin_id());
} else {
/*
* 没有获取到的时候显示缓存
* */
Log.e(TAG + ":" + "getStudesInfo", "onNext: " + studentsInfoBaseResponse.toString());
}
}
@@ -225,35 +212,11 @@ public class MainAPresenter implements MainAContact.Presenter {
}
}
private long lastgetLockedTime;
private long one_minute = 1000 * 60;
@Override
public void getLockedState() {
NetInterfaceManager.getInstance()
.getLockedState(lifecycle, new NetInterfaceManager.ObserverCallback() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseResponse response) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
Log.e(TAG, "onComplete: ");
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
}
});
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
}
@Override

View File

@@ -2,11 +2,8 @@ package com.aoleyun.sn.activity.main;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.os.SystemClock;
import android.text.TextUtils;
@@ -18,14 +15,12 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.activity.requestlog.RequestLogActivity;
import com.aoleyun.sn.base.BaseActivity;
import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.ExampleUtil;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.SysSettingUtils;
@@ -117,19 +112,10 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
}
}
private MainAPresenter mPresenter;
private MainAPresenter mMainAPresenter;
private boolean updateApp = false;
//jiguang
public static boolean isForeground = false;
//for receive customer msg from jpush server
private MessageReceiver mMessageReceiver;
public static final String MESSAGE_RECEIVED_ACTION = "com.aoleyun.sn.MESSAGE_RECEIVED_ACTION";
public static final String KEY_TITLE = "title";
public static final String KEY_MESSAGE = "message";
public static final String KEY_EXTRAS = "extras";
@Override
public void onDisconnected() {
Log.e("OnNetworkStatusChanged", "onDisconnected: ");
@@ -140,7 +126,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
Log.e("OnNetworkStatusChanged", "onConnected: ");
timeMillis = SystemClock.elapsedRealtime();
//直接获取数据
mPresenter.getLockedState();
mMainAPresenter.getLockedState();
}
@Override
@@ -151,9 +137,9 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override
public void initView() {
ButterKnife.bind(this);
mPresenter = new MainAPresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(lifecycleSubject);
mMainAPresenter = new MainAPresenter(this);
mMainAPresenter.attachView(this);
mMainAPresenter.setLifecycle(lifecycleSubject);
JGYUtils.startServices(MainActivity.this);
Log.e(TAG, "initView: " + "start request");
NetworkUtils.registerNetworkStatusChangedListener(this);
@@ -161,6 +147,53 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
setStoreUpdateListener(bt_checkupdate);
}
private void setStoreUpdateListener(View view) {
ObservableOnSubscribe<View> mObservableOnSubscribe = new ObservableOnSubscribe<View>() {
@Override
public void subscribe(@NonNull ObservableEmitter<View> emitter) throws Throwable {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (updateApp) {
ToastUtil.show("你已经检查过更新,请稍后再试");
} else {
emitter.onNext(view);
}
}
});
}
};
Observer<View> mObserver = new Observer<View>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("mObserver", "onSubscribe");
}
@Override
public void onNext(@NonNull View view) {
Log.e("mObserver", "onNext");
ToastUtil.show("正在检查更新");
mMainAPresenter.buttonCheckUpdate(bt_checkupdate);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("mObserver", "onError" + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("mObserver", "onComplete");
}
};
Observable.create(mObservableOnSubscribe)
.throttleFirst(10, TimeUnit.SECONDS)
//这句很关键这是RxJava中的操作符在规定时间内观察者不在接收被观察者发送的事件
.subscribe(mObserver);
}
private void getDevicesInfo() {
String sn = Utils.getSerial();
tv_devsn.setText(sn);
@@ -170,21 +203,18 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
tv_devmac.setText("获取失败");
} else {
tv_devmac.setText(macaddr);
// mPresenter.getQRImage(macaddr);
}
tv_version.setText(BuildConfig.VERSION_NAME);
//获取自定义版本
//Log.e(TAG, "getDevicesInfo: " + Utils.getProperty("ro.build.id", "获取失败"));
//展讯获取自定义版本
//获取自定义版本
Log.e(TAG, "getDevicesInfo: CustomVersion: " + Utils.getCustomVersion());
Log.e(TAG, "getDevicesInfo: RomVersion: " + Utils.getRomVersion());
tv_customversion.setText(Utils.getCustomVersion());
}
private void checkSNError(String sn) {
//sn长度12
if (sn.length() != 12) {
// showSNErrorDialog("设备SN号码格式错误");
//sn长度最长30
if (sn.length() > 30) {
showSNErrorDialog("设备SN号码格式错误");
} else {
Log.e(TAG, "checkSNError: " + sn);
}
@@ -192,8 +222,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
if (JGYUtils.getInstance().checkSNPlatform(sn) != JGYUtils.getInstance().checkAppPlatform()) {
// showSNErrorDialog("SN数据与平台不符请联系管理员");
}
//设置极光推送标签
// JGYUtils.getInstance().getAppPlatform(platform -> mPresenter.setJpushPlatformTags(platform));
}
private void showSNErrorDialog(String content) {
@@ -215,23 +243,16 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override
public void initData() {
// JPushInterface.init(this);
registerMessageReceiver();
Log.e("getMacAddress", Utils.getAndroid10MAC(this));
timeMillis = SystemClock.elapsedRealtime();
Utils.getPublicIP(this);
startService(new Intent(MainActivity.this, MainService.class));
mPresenter.getLockedState();
mPresenter.getStudesInfo();
mMainAPresenter.getLockedState();
mMainAPresenter.getStudesInfo();
}
@Override
public void setQRImage(Bitmap qrImage) {
head.setImageBitmap(qrImage);
}
@Override
public void settrade_type(int tradeType) {
public void settradeType(int tradeType) {
if (tradeType == 1) {
tv_class_name.setText("班级");
tv_number_name.setText("学号");
@@ -331,27 +352,24 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override
protected void onStop() {
super.onStop();
isForeground = false;
}
@Override
protected void onPause() {
super.onPause();
isForeground = false;
}
@Override
protected void onResume() {
super.onResume();
isForeground = true;
}
@Override
protected void onDestroy() {
super.onDestroy();
mPresenter.detachView();
JGYUtils.startServices(MainActivity.this);
NetworkUtils.unregisterNetworkStatusChangedListener(this);
mMainAPresenter.detachView();
}
@Override
@@ -373,80 +391,4 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
finish();
}
}
private void setStoreUpdateListener(View view) {
ObservableOnSubscribe<View> mObservableOnSubscribe = new ObservableOnSubscribe<View>() {
@Override
public void subscribe(@NonNull ObservableEmitter<View> emitter) throws Exception {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (updateApp) {
ToastUtil.show("你已经检查过更新,请稍后再试");
} else {
emitter.onNext(view);
}
}
});
}
};
Observer<View> mObserver = new Observer<View>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("mObserver", "onSubscribe");
}
@Override
public void onNext(@NonNull View view) {
Log.e("mObserver", "onNext");
ToastUtil.show("正在检查更新");
mPresenter.buttonCheckUpdate(bt_checkupdate);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("mObserver", "onError");
onComplete();
}
@Override
public void onComplete() {
Log.e("mObserver", "onComplete");
}
};
Observable.create(mObservableOnSubscribe)
.throttleFirst(10, TimeUnit.SECONDS)
//这句很关键这是RxJava中的操作符在规定时间内观察者不在接收被观察者发送的事件
.subscribe(mObserver);
}
//jiguang
public void registerMessageReceiver() {
mMessageReceiver = new MessageReceiver();
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MESSAGE_RECEIVED_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
}
public static class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
String messge = intent.getStringExtra(KEY_MESSAGE);
String extras = intent.getStringExtra(KEY_EXTRAS);
StringBuilder showMsg = new StringBuilder();
showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
if (!ExampleUtil.isEmpty(extras)) {
showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
}
// setCostomMsg(showMsg.toString());
}
} catch (Exception e) {
}
}
}
}

View File

@@ -248,7 +248,7 @@ public class BaseApplication extends MultiDexApplication {
case 6017:
case 6027:
Log.e("jiguangInterface", s + "别名绑定的设备数超过限制");
cleanJpushAlias();
// cleanJpushAlias();
setJpushAlias();
break;
default:
@@ -338,7 +338,7 @@ public class BaseApplication extends MultiDexApplication {
break;
case 6018:
Log.e("jiguangInterface", s + "Tags 过多");
cleanJpushTag();
// cleanJpushTag();
ToastUtil.show("设备标签数量超出限制,联系管理员修改\t" + "code:6018");
break;
case 6021:

View File

@@ -27,9 +27,9 @@ import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.bean.SnRunLog;
import com.aoleyun.sn.bean.WiFiAlias;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.network.api.newapi.GetPublicIPApi;
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
import com.aoleyun.sn.network.api.GetPublicIPApi;
import com.aoleyun.sn.network.api.SnTimeControlApi;
import com.aoleyun.sn.network.api.TopAppControlApi;
import com.aoleyun.sn.service.LogcatService;
import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.ApkUtils;
@@ -621,33 +621,26 @@ public class HTTPInterface {
public static void getAppLimit(Context context) {
NetInterfaceManager.getInstance()
.getAppLimitObservable()
.subscribe(new Observer<ResponseBody>() {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAppLimit", "onSubscribe: ");
}
@Override
public void onNext(@NonNull ResponseBody responseBody) {
try {
String bodyString = responseBody.string();
Log.e("getAppLimit", "onNext: " + bodyString);
JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject();
int code = jsonObject.get("code").getAsInt();
if (code == 200) {
String data = jsonObject.get("data").getAsJsonObject().get("result").getAsString();
public void onNext(@NonNull BaseResponse baseResponse) {
Log.e("getAppLimit", "onNext: " + baseResponse);
JsonObject jsonObject = JsonParser.parseString(baseResponse.data.toString()).getAsJsonObject();
if (baseResponse.code == 200) {
String data = jsonObject.get("result").getAsString();
//开机图标 只记录后台传的包名
boolean write = Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
JGYUtils.getInstance().writeAppPackageList(context, data);
JGYUtils.getInstance().deleteOtherApp();
} else {
Log.e("getAppLimit", "onNext: " + bodyString);
Log.e("getAppLimit", "onNext: " + baseResponse);
}
} catch (IOException e) {
e.printStackTrace();
Log.e("getAppLimit", "onNext: IOException: " + e.getMessage());
}
}
@Override

View File

@@ -8,6 +8,7 @@ import android.util.Log;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.bean.AppListInfo;
import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserBookmarks;
@@ -30,40 +31,40 @@ import com.aoleyun.sn.network.api.ForceDownloadApi;
import com.aoleyun.sn.network.api.NetAndLaunchApi;
import com.aoleyun.sn.network.api.SystemSettingApi;
import com.aoleyun.sn.network.api.UploadAppInfoApi;
import com.aoleyun.sn.network.api.newapi.AppinsideWebApi;
import com.aoleyun.sn.network.api.newapi.BrowserBookmarksApi;
import com.aoleyun.sn.network.api.newapi.BrowserListApi;
import com.aoleyun.sn.network.api.newapi.CheckTestUpdateApi;
import com.aoleyun.sn.network.api.newapi.CheckUpdateApi;
import com.aoleyun.sn.network.api.newapi.CustomROMAppApi;
import com.aoleyun.sn.network.api.newapi.DefaultAppApi;
import com.aoleyun.sn.network.api.newapi.DesktopIconApi;
import com.aoleyun.sn.network.api.newapi.DevicesLockedStateApi;
import com.aoleyun.sn.network.api.newapi.GetAllAppApi;
import com.aoleyun.sn.network.api.newapi.GetAppLogApi;
import com.aoleyun.sn.network.api.newapi.GetBatchApi;
import com.aoleyun.sn.network.api.newapi.GetDesktopApi;
import com.aoleyun.sn.network.api.newapi.GetDeveloperApi;
import com.aoleyun.sn.network.api.newapi.GetEBagCodeApi;
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
import com.aoleyun.sn.network.api.newapi.GetJpushTagsApi;
import com.aoleyun.sn.network.api.newapi.GetPoweroffApi;
import com.aoleyun.sn.network.api.newapi.GetSnRunLogApi;
import com.aoleyun.sn.network.api.newapi.GetUploadIsLogApi;
import com.aoleyun.sn.network.api.newapi.GetUploadLogApi;
import com.aoleyun.sn.network.api.newapi.GetWiFiAliasApi;
import com.aoleyun.sn.network.api.newapi.LogoImgApi;
import com.aoleyun.sn.network.api.newapi.MACAddressApi;
import com.aoleyun.sn.network.api.newapi.NewAppinsideWebApi;
import com.aoleyun.sn.network.api.newapi.ScreenLockStateApi;
import com.aoleyun.sn.network.api.newapi.SendDownloadInfoApi;
import com.aoleyun.sn.network.api.newapi.SendDownloadTimesApi;
import com.aoleyun.sn.network.api.newapi.SendRestoreTimesApi;
import com.aoleyun.sn.network.api.newapi.SendScreenshotApi;
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
import com.aoleyun.sn.network.api.newapi.StudentsInfosApi;
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
import com.aoleyun.sn.network.api.newapi.UpdateDeviceInfoApi;
import com.aoleyun.sn.network.api.AppinsideWebApi;
import com.aoleyun.sn.network.api.BrowserBookmarksApi;
import com.aoleyun.sn.network.api.BrowserListApi;
import com.aoleyun.sn.network.api.CheckTestUpdateApi;
import com.aoleyun.sn.network.api.CheckUpdateApi;
import com.aoleyun.sn.network.api.CustomROMAppApi;
import com.aoleyun.sn.network.api.DefaultAppApi;
import com.aoleyun.sn.network.api.DesktopIconApi;
import com.aoleyun.sn.network.api.DevicesLockedStateApi;
import com.aoleyun.sn.network.api.GetAllAppApi;
import com.aoleyun.sn.network.api.GetAppLogApi;
import com.aoleyun.sn.network.api.GetBatchApi;
import com.aoleyun.sn.network.api.GetDesktopApi;
import com.aoleyun.sn.network.api.GetDeveloperApi;
import com.aoleyun.sn.network.api.GetEBagCodeApi;
import com.aoleyun.sn.network.api.GetLockStateApi;
import com.aoleyun.sn.network.api.GetJpushTagsApi;
import com.aoleyun.sn.network.api.GetPoweroffApi;
import com.aoleyun.sn.network.api.GetSnRunLogApi;
import com.aoleyun.sn.network.api.GetUploadIsLogApi;
import com.aoleyun.sn.network.api.GetUploadLogApi;
import com.aoleyun.sn.network.api.GetWiFiAliasApi;
import com.aoleyun.sn.network.api.LogoImgApi;
import com.aoleyun.sn.network.api.MACAddressApi;
import com.aoleyun.sn.network.api.NewAppinsideWebApi;
import com.aoleyun.sn.network.api.ScreenLockStateApi;
import com.aoleyun.sn.network.api.SendDownloadInfoApi;
import com.aoleyun.sn.network.api.SendDownloadTimesApi;
import com.aoleyun.sn.network.api.SendRestoreTimesApi;
import com.aoleyun.sn.network.api.SendScreenshotApi;
import com.aoleyun.sn.network.api.SnTimeControlApi;
import com.aoleyun.sn.network.api.StudentsInfosApi;
import com.aoleyun.sn.network.api.TopAppControlApi;
import com.aoleyun.sn.network.api.UpdateDeviceInfoApi;
import com.aoleyun.sn.rlog.LogDBManager;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.JGYUtils;
@@ -76,7 +77,6 @@ import com.google.gson.JsonParser;
import com.tencent.android.tpush.XGIOperateCallback;
import com.tencent.android.tpush.XGPushManager;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.LifecycleProvider;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
@@ -95,10 +95,10 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.ObservableEmitter;
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.core.ObservableSource;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Function;
import io.reactivex.rxjava3.schedulers.Schedulers;
import io.reactivex.rxjava3.subjects.BehaviorSubject;
import okhttp3.Cache;
@@ -338,7 +338,7 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<ResponseBody> getAppLimitObservable() {
public Observable<BaseResponse> getAppLimitObservable() {
return mRetrofit.create(AppLimitApi.class)
.getAppLimitApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial())
.subscribeOn(Schedulers.io())
@@ -559,7 +559,7 @@ public class NetInterfaceManager {
public void getLockedState(BehaviorSubject<ActivityEvent> provider, ObserverCallback callback) {
long lastTime = mMMKV.decodeLong(GET_LOCKED_STATE_TIME, 0);
if (System.currentTimeMillis() - ONE_MINUTE_TIME < lastTime) {
if (System.currentTimeMillis() - TEN_MINUTE_TIME < lastTime) {
callback.onComplete();
return;
}
@@ -691,7 +691,8 @@ public class NetInterfaceManager {
}
String address = String.valueOf(SPUtils.get(mContext, "AmapAddress", "-"));
if ("-".equals(address)) {
address = (String) SPUtils.get(mContext, "AmapError", "-");
address = "定位失败";
// address = (String) SPUtils.get(mContext, "AmapError", "-");
}
String longitude = String.valueOf(SPUtils.get(mContext, "longitude", "0"));
String latitude = String.valueOf(SPUtils.get(mContext, "latitude", "0"));
@@ -813,6 +814,4 @@ public class NetInterfaceManager {
}
});
}
}

View File

@@ -10,13 +10,24 @@ public class UrlAddress {
/*根网址*/
public static final String HTTP_TAG_HEAD_NEW = BuildConfig.ROOT_URL;
/*下载接口 根据包名匹配 请求后更新下载次数*/
public static final String SEND_DOWNLOAD_TIMES = "count/index";
/*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使用情况*/
@@ -67,8 +78,7 @@ public class UrlAddress {
public static final String GET_ALL_APP = "recommend/index";
/*获取电子书包激活码*/
public static final String GET_EBAG_CODE = "And/getEbagCode";
/*获取系统默认程序*/
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
/*恢复出厂设置次数*/
public static final String SEND_RESTORE_TIMES = "And/restore";
/*获取远程关机时间*/

View File

@@ -1,9 +1,9 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
@@ -11,7 +11,7 @@ import retrofit2.http.POST;
public interface AppLimitApi {
@FormUrlEncoded
@POST(UrlAddress.SET_WHITE_PACKAGE_LIST)
Observable<ResponseBody> getAppLimitApi(
Observable<BaseResponse> getAppLimitApi(
@Field("key") String key,
@Field("sn") String sn
);

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.Appground;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserBookmarks;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserData;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.ForceDownloadData;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.DefaultApp;

View File

@@ -1,5 +1,7 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
public interface DeselectIDApi {
@FormUrlEncoded
@POST("application/index")
@POST(UrlAddress.GET_APPID)
Observable<ResponseBody> getDeselectIDApi(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.AppListInfo;
import com.aoleyun.sn.bean.BaseResponse;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,6 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.ResponseBody;
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
public interface GetBatchApi {
@FormUrlEncoded
@POST("log/getBatch")
@POST(UrlAddress.GET_BATCH)
Observable<ResponseBody> getBatch(
@Field("sn") String sn
);

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,6 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.ResponseBody;
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
public interface GetLockStateApi {
@FormUrlEncoded
@POST("Application/getLockState")
@POST(UrlAddress.GET_LOCK_STATE)
Observable<ResponseBody> getLockState(
@Field("sn") String sn,
@Field("status") String status,

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.PoweroffBean;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.SnRunLog;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.LogoImg;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.bean.BaseResponse;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.StudentsInfo;

View File

@@ -1,15 +1,16 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface SystemSettingApi {
@FormUrlEncoded
@POST("firmware/get")
@POST(UrlAddress.GET_FIRMWARE)
Observable<ResponseBody> getSystemSettingApi(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.network.api.newapi;
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;

View File

@@ -1,6 +1,7 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.Field;
@@ -9,7 +10,7 @@ import retrofit2.http.POST;
public interface UploadAppInfoApi {
@FormUrlEncoded
@POST("log/index")
@POST(UrlAddress.UPLOAD_APPINFO)
Observable<BaseResponse> getUploadAppInfoApi(
@Field("key") String key,
@Field("sn") String sn,

View File

@@ -28,10 +28,8 @@ import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.manager.AmapManager;
import com.aoleyun.sn.network.HTTPInterface;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
import com.aoleyun.sn.network.api.newapi.SendScreenStatusApi;
import com.aoleyun.sn.network.api.SendScreenStatusApi;
import com.aoleyun.sn.receiver.BootReceiver;
import com.aoleyun.sn.receiver.NewAppReceiver;
import com.aoleyun.sn.rlog.LogDBManager;
@@ -339,6 +337,11 @@ public class GuardService extends Service {
});
}
/**
* @param status
* @param time
* 和锁屏状态无关,记录设备使用时长的
*/
private void getLockState(String status, String time) {
if (JGYUtils.isOfficialVersion()) {
return;
@@ -558,6 +561,7 @@ public class GuardService extends Service {
@Download.onTaskFail
void taskFail(DownloadTask task, Exception e) {
try {
Aria.download(this).resumeAllTask();
final String filepath = task.getFilePath();
final String packageName = task.getExtendField();
JSONObject jsonObject = JSON.parseObject(task.getExtendField());

View File

@@ -1,174 +1,169 @@
package com.aoleyun.sn.service.main;
import android.view.View;
import com.aoleyun.sn.base.BasePresenter;
import com.aoleyun.sn.base.BaseView;
import com.google.gson.JsonObject;
public class MainSContact {
public interface Presenter extends BasePresenter<MainView> {
//获取学生信息
void getStudesInfo();
//获取设备锁定状态
/*分支1*/
/*获取设备锁定状态*/
void getLockedState(String key);
//是否第一次联网
void getFirstConnect();
//关闭所有功能
void setDisableSetting();
//发送mac地址
void sendMACAddress();
//更新设备信息
void updateDeviceInfo();
//获取时间管控
void getSnTimeControl();
//获取电子书包激活码
void getEBagCode();
//设置极光推送别名
void setJpushAlias();
//设置极光推送平台标签
void setJpushPlatformTags(int platform);
//获取应用市场更新
void checkStoreUpdate();
//获取设备信息更新
void checkInfoUpdate();
//获取桌面升级
void checkDesktopUpdate();
//获取通知升级
void checkNotifyUpdate();
//获取浏览器升级
void checkBrowserUpdate();
//手动获取设备信息更新
void buttonCheckUpdate(View view);
//获取测试应用更新
void checkTestUpdate();
//开始
//设置极光推送标签
/*设置极光推送标签*/
void setPushTags();
//获取开发者选项
void getDeveloper();
//获取设备后台设置
void getSystemSettingbegin();
//获取可被写入的安装包名
void getAppLimit();
//获取设备批次
void getDeviceBatch(String packageList);
//获取强制下载apk
/*获取设备批次*/
void getDeviceBatch();
/*分支2 基本信息*/
/*是否第一次联网*/
void getFirstConnect();
/*获取学生信息*/
void getStudesInfo();
/*分支3 上传信息*/
/*发送mac地址*/
void sendMACAddress();
/*更新设备信息*/
void updateDeviceInfo();
/*上传安装的应用列表*/
void sendInstalled();
/*分支4 获取应用*/
/*获取设备信息更新*/
void checkInfoUpdate();
/*获取应用市场更新*/
void checkStoreUpdate();
/*获取桌面升级*/
void checkDesktopUpdate();
/*获取通知升级*/
void checkNotifyUpdate();
/*获取浏览器升级*/
void checkBrowserUpdate();
/*获取测试应用更新*/
void checkTestUpdate();
/*获取强制下载apk*/
void getForceDownload();
//获取浏览器上网管控设置
void getBrowserList();
//获取浏览器书签设置管控
void getBrowserBookmarks(String whitelist);
//设置白名单的url
void getBrowserWhiteList();
//获取应用图标桌面可见性管控
void getDesktopIcon();
//获取应用自启升级和网络权限管理
void getAppAutoStartUpdateAndNet();
//获取第三方应用子页面ID连网限制
void getAppIDControl();
//获取第三方应用内部网页跳转屏蔽
void setAppinsideWeb();
//获取系统其他管控设置
void setSystemSetting();
//获取系统默认程序设置
void getDefaultApp();
//获取自定义版本内置app
void getROMApp();
//设置开机动画
void setLogoImg();
//应用霸屏
void setTopApp();
//获取桌面
/*获取桌面*/
void getDefaultDesktop();
//获取关机时间
/*设置开机动画*/
void setLogoImg();
/*分支5 获取管控*/
/*获取开发者选项*/
void getDeveloper();
/*获取设备后台设置*/
void getSystemSettingBegin();
/*获取可被写入的安装包名*/
void getAppLimit();
/*获取自定义内置app*/
void getROMApp();
/*获取浏览器书签设置管控*/
void getBrowserBookmarks();
/*设置白名单的url 单独*/
void getBrowserWhiteList();
/*获取应用图标桌面可见性管控*/
void getDesktopIcon();
/*获取应用自启升级和网络权限管理*/
void getAppAutoStartUpdateAndNet();
/*获取第三方应用子页面ID连网限制*/
void getAppIDControl();
/*获取第三方应用内部网页跳转屏蔽*/
void setAppinsideWeb();
/*获取系统其他管控设置*/
void setSystemSetting();
/*获取系统默认程序设置*/
void getDefaultApp();
/*应用霸屏*/
void setTopApp();
/*获取关机时间*/
void getPoweroffTime();
//获取wifi密码
/*获取时间管控*/
void getSnTimeControl();
/*获取电子书包激活码*/
void getEBagCode();
/*获取wifi密码*/
void getWiFiPasswd();
/*
* MainService
* */
//获取屏幕锁状态
/*获取屏幕锁状态*/
void getScreenLockState();
}
public interface MainView extends BaseView {
//获取设备锁定状态
void setLockedState(boolean loocked);
//是否第一次联网
void setFirstConnect(boolean state);
//发送mac地址
void sendMACFinish();
//更新设备信息
void updateDeviceInfoFinish();
//获取时间管控
void getSnTimeControlFinish();
//获取电子书包激活码
void getEBagCodeFinish();
//设置极光推送别名
void setAliasFinish();
//设置极光推送平台标签
void setJpushPlatformTagsFinish();
//获取应用市场更新
void checkStoreUpdateFinish();
//获取设备信息更新
void checkInfoUpdateFinish();
//获取桌面升级
void checkDesktopUpdateFinish();
//获取通知升级
void checkNotifyUpdateFinish();
//获取浏览器升级
void checkBrowserUpdateFinish();
//手动获取设备信息更新
void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject);
//获取测试应用更新
void checkTestUpdateFinish();
//开始
//设置极光推送标签
void setTagsFinish(boolean noTag);
//获取开发者选项结束
void getDeveloperFinish();
//设置设备后台设置
void getSystemSettingbegin();
//获取可被写入的安装包名结束
void getAppLimitFinish(String packageList);
//获取设备批次结束
void getDeviceBatchFinish();
//获取强制下载apk结束
void getForceDownloadFinish();
//获取浏览器上网管控设置结束
void getBrowserListFinish(String whitelist);
//获取浏览器书签设置管控结束
void getBrowserBookmarksFinish();
//获取应用图标桌面可见性管控结束
void getDesktopIconFinish();
//获取应用自启升级和网络权限管理结束
void getAppAutoStartUpdateAndNetFinish();
//获取第三方应用子页面ID连网限制结束
void getAppIDControlFinish();
//获取第三方应用内部网页跳转屏蔽结束
void setAppinsideWebFinish();
//获取系统其他管控设置结束
void setSystemSettingFinish();
//获取系统默认程序设置
void setDefaultAppFinish();
//获取自定义版本内置app
void getROMAppFinish();
//设置开机动画
void setLogoImgFinish();
//获取应用霸屏结束
void setTopAppFinish();
//获取桌面结束
/*获取设备锁定状态*/
void setLockedState(boolean loocked);
/*设置极光推送标签*/
void setTagsFinish(boolean noTag);
/*获取设备批次结束*/
void getDeviceBatchFinish();
/*是否第一次联网*/
void setFirstConnect(boolean state);
/*获取学生信息*/
void setStudesInfo();
/*发送mac地址*/
void sendMACFinish();
/*更新设备信息*/
void updateDeviceInfoFinish();
/*上传安装的应用列表*/
void sendInstalledFinish();
/*获取设备信息更新*/
void checkInfoUpdateFinish();
/*获取应用市场更新*/
void checkStoreUpdateFinish();
/*获取桌面升级*/
void checkDesktopUpdateFinish();
/*获取通知升级*/
void checkNotifyUpdateFinish();
/*获取浏览器升级*/
void checkBrowserUpdateFinish();
/*获取测试应用更新*/
void checkTestUpdateFinish();
/*获取强制下载apk结束*/
void getForceDownloadFinish();
/*获取桌面结束*/
void getDefaultDesktopFinish();
//获取关机时间
/*设置开机动画*/
void setLogoImgFinish();
/*获取开发者选项结束*/
void getDeveloperFinish();
/*设置设备后台设置*/
void setSystemSetting();
/*获取可被写入的安装包名结束*/
void getAppLimitFinish();
/*获取自定义内置app*/
void getROMAppFinish();
/*获取浏览器书签设置管控结束*/
void getBrowserBookmarksFinish();
/*设置白名单的url 单独*/
void setBrowserWhiteList();
/*获取应用图标桌面可见性管控结束*/
void getDesktopIconFinish();
/*获取应用自启升级和网络权限管理结束*/
void getAppAutoStartUpdateAndNetFinish();
/*获取第三方应用子页面ID连网限制结束*/
void getAppIDControlFinish();
/*获取第三方应用内部网页跳转屏蔽结束*/
void setAppinsideWebFinish();
/*获取系统其他管控设置结束*/
void setSystemSettingFinish();
/*获取系统默认程序设置*/
void setDefaultAppFinish();
/*获取应用霸屏结束*/
void setTopAppFinish();
/*获取关机时间*/
void setPoweroffTime();
//获取wifi密码结束
/*获取时间管控*/
void getSnTimeControlFinish();
/*获取电子书包激活码*/
void getEBagCodeFinish();
/*获取wifi密码结束*/
void setWiFiPasswd();
/*
* MainService
* */
//设置屏幕锁状态结束
/*设置屏幕锁状态结束*/
void setScreenLockStateFinish(boolean locked, String tips);
}
}

View File

@@ -5,11 +5,9 @@ import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.net.ConnectivityManager;
@@ -18,7 +16,6 @@ import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.IBinder;
import android.os.SystemClock;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.DisplayMetrics;
@@ -37,14 +34,12 @@ import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.activity.main.MainAPresenter;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.PoweroffBean;
import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.manager.ConnectManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.receiver.BootReceiver;
import com.aoleyun.sn.rlog.LogDBManager;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.ForegroundAppUtil;
@@ -57,7 +52,6 @@ import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils;
import com.blankj.utilcode.util.NetworkUtils;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.LifecycleProvider;
@@ -87,7 +81,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@SuppressLint("StaticFieldLeak")
public static MainSPresenter mPresenter;
public static boolean netWorkIsRunning = false;
private MMKV mMMKV = MMKV.defaultMMKV();
@Override
@@ -109,6 +102,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
start.onstar(WiFiAlias);
}
}
if (!checkAoleyunApp()){
mPresenter.checkInfoUpdate();
}
}
private final BehaviorSubject<ActivityEvent> lifecycleSubject = BehaviorSubject.create();
@@ -198,7 +194,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
}
private interface Start {
void onstar(String key);
}
@@ -215,25 +210,24 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
private Observer<String> timeObserver = new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.e("timeObserver", "onSubscribe: ");
}
@Override
public void onNext(String string) {
connectKey = string;
Log.e("TimeObserver", "onNext: " + string);
mPresenter.getFirstConnect();
Log.e("timeObserver", "onNext: " + string);
mPresenter.getLockedState(string);
}
@Override
public void onError(Throwable e) {
Log.e("timeObserver", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("timeObserver", "onComplete: ");
}
};
@@ -254,6 +248,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
mPresenter = new MainSPresenter(this);
mPresenter.attachView(this);
mPresenter.setLifecycle(lifecycleSubject);
Observable.create(subscribe)
.throttleFirst(1, TimeUnit.MINUTES)
.subscribe(timeObserver);
@@ -263,24 +258,23 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
if ((int) SPUtils.get(this, CommonConfig.JGY_FIRST_CONNECT, 0) == 0) {
// TODO: 2021/5/26 待底层修改,临时解决办法
Log.e(TAG, "onCreate: " + "Disable All Settings");
mPresenter.setDisableSetting();
SysSettingUtils.setDisableSetting(this);
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
}
int oldVersionCode = (int) SPUtils.get(this, CommonConfig.SN_VERSIONCODE, 0);
if (oldVersionCode < BuildConfig.VERSION_CODE) {
Log.e(TAG, "onCreate: " + "upgrade successful");
} else {
// if (ConnectManager.getInstance().isRebootFistConnect()) {
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
// }
}
SPUtils.put(this, CommonConfig.SN_VERSIONCODE, BuildConfig.VERSION_CODE);
registerReceivers();
NetworkUtils.registerNetworkStatusChangedListener(this);
addShortcut();
// cleanLauncherCache();
timeChangedStart.onstar(System.currentTimeMillis());
setStatusbar();
//发送设备mac地址和信息
setFloatingWindow(this);
createNotificationChannel();
sendSimpleNotification();
@@ -289,6 +283,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
JGYUtils.getInstance().wakeUpAppstore();
if (!checkAoleyunApp()){
mPresenter.checkInfoUpdate();
}
return START_STICKY;
}
@@ -301,6 +298,18 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
mPresenter.detachView();
}
private boolean checkAoleyunApp() {
if (!ApkUtils.isAvailable(this, PackageNames.APPSTORE)) return false;
if (!ApkUtils.isAvailable(this, PackageNames.DESKTOP)) return false;
if (!ApkUtils.isAvailable(this, PackageNames.NOTIFICATIONS)) return false;
if (!ApkUtils.isAvailable(this, PackageNames.BROWSER)) return false;
return true;
}
private static final String CHANNEL_ID = "CHANNEL_ID";
private static final String channel_name = "系统通知";
private static final String channel_description = "我的设备系统通知";
private void createNotificationChannel() {
// Create the NotificationChannel, but only on API 26+ because
// the NotificationChannel class is new and not in the support library
@@ -317,10 +326,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
}
private static final String CHANNEL_ID = "CHANNEL_ID";
private static final String channel_name = "系统通知";
private static final String channel_description = "我的设备系统通知";
private void sendSimpleNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
.setSmallIcon(R.mipmap.ic_launcher)
@@ -337,7 +342,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
private void addShortcut() {
ApkUtils.addShortcut(MainService.this);
ApkUtils.addShortcut(this);
}
private void setStatusbar() {
@@ -571,8 +576,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
}
private void checkShutdownTime() {
MMKV mmkv = MMKV.defaultMMKV();
String poweroffTime = mmkv.decodeString("poweroffTime", "");
String poweroffTime = mMMKV.decodeString("poweroffTime", "");
Log.e("checkShutdownTime", "poweroffTime: " + poweroffTime);
Gson gson = new Gson();
Type listType = new TypeToken<List<PoweroffBean>>() {
@@ -597,7 +601,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
private static final String UPLOAD_LOG_TIME = "23:00:00";
private void checkUploadLogTime() {
int is_log_type = (int) SPUtils.get(MainService.this, CommonConfig.UPLOAD_LOG_TYPE, 0);
int is_log_type = (int) SPUtils.get(this, CommonConfig.UPLOAD_LOG_TYPE, 0);
if (is_log_type == 0) {
Log.e(TAG, "checkUploadLogTime: " + "is_log_type = " + is_log_type);
} else {
@@ -614,7 +618,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
synchronized private void setFloatingWindow(Context context) {
ForegroundAppUtil.openTopApp(context);
long nowTime = System.currentTimeMillis();
TimeUtils.ContralTime contralTime = TimeUtils.getDefaltContralTime(MainService.this);
TimeUtils.ContralTime contralTime = TimeUtils.getDefaltContralTime(this);
Log.e(TAG, "setFloatingWindow: " + contralTime);
Log.e(TAG, "setFloatingWindow: screenlocked: " + screenlocked);
if (null != contralTime) {
@@ -700,57 +704,38 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
Log.e(TAG, "installApkByPackage: " + "packageName: " + pkg + " not in whitelist");
} else {
Log.e(TAG, "installApkByPackage: " + "packageName: " + pkg);
ApkUtils.installApp(MainService.this, filePath);
ApkUtils.installApp(this, filePath);
}
}
@Override
public void setLockedState(boolean loocked) {
Log.e(TAG, "netWorkIsRunning: " + netWorkIsRunning);
//发送设备mac地址和信息
mPresenter.sendMACAddress();
//设置极光推送别名
mPresenter.setJpushAlias();
//设置极光推送标签
mPresenter.setPushTags();
if (loocked) {
ToastUtil.betaShow("设备已上锁");
//上传APP信息
NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.ObserverCallback() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BaseResponse response) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
mPresenter.setPushTags();
mPresenter.getDeveloper();
SaveListUtils.getList();
if (netWorkIsRunning) {
//如果正在执行,不执行
// return;
}
netWorkIsRunning = true;
} else {
ToastUtil.betaShow("设备已解锁");
netWorkIsRunning = false;
SysSettingUtils.setEnableSetting(this);
}
}
@Override
public void setTagsFinish(boolean noTag) {
if (noTag) {
//没有批次就没有管控
Log.e(TAG, "setTagsFinish: " + "not set tag");
} else {
mPresenter.getDeviceBatch();
}
}
@Override
public void getDeviceBatchFinish() {
mPresenter.getFirstConnect();
}
/**
* 首次使用默认关闭所有功能
*
@@ -760,12 +745,22 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
public void setFirstConnect(boolean state) {
Log.e(TAG, "isFirstConnect: " + "end request: " + state);
if (state) {
mPresenter.setDisableSetting();
Log.e(TAG, "setDisableSetting: ");
//设置系统管控
SysSettingUtils.setDisableSetting(this);
} else {
}
mPresenter.getStudesInfo();
}
@Override
public void setStudesInfo() {
Log.e(TAG, "setStudesInfo: " + "基本信息获取完毕");
mPresenter.sendMACAddress();
}
@Override
public void sendMACFinish() {
mPresenter.updateDeviceInfo();
@@ -773,36 +768,23 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void updateDeviceInfoFinish() {
mPresenter.getSnTimeControl();
mPresenter.sendInstalled();
}
@Override
public void getSnTimeControlFinish() {
mPresenter.getEBagCode();
public void sendInstalledFinish() {
Log.e(TAG, "sendInstalledFinish: ");
mPresenter.checkInfoUpdate();
}
@Override
public void getEBagCodeFinish() {
}
@Override
public void setAliasFinish() {
public void checkInfoUpdateFinish() {
mPresenter.checkStoreUpdate();
}
@Override
public void setJpushPlatformTagsFinish() {
}
@Override
public void checkStoreUpdateFinish() {
mPresenter.checkInfoUpdate();
}
@Override
public void checkInfoUpdateFinish() {
mPresenter.checkDesktopUpdate();
}
@@ -821,61 +803,54 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
mPresenter.checkTestUpdate();
}
@Override
public void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject) {
}
@Override
public void checkTestUpdateFinish() {
}
@Override
public void setTagsFinish(boolean noTag) {
if (noTag) {
Log.e(TAG, "setTagsFinished: " + "not set tag");
netWorkIsRunning = false;
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime()) + " ms");
} else {
mPresenter.getSystemSettingbegin();
}
mPresenter.getDeveloper();
}
@Override
public void getDeveloperFinish() {
Log.e(TAG, "getDeveloperFinished: ");
}
@Override
public void getSystemSettingbegin() {
mPresenter.getAppLimit();
}
@Override
public void getAppLimitFinish(String packageList) {
mPresenter.getDeviceBatch(packageList);
}
@Override
public void getDeviceBatchFinish() {
mPresenter.getForceDownload();
}
@Override
public void getForceDownloadFinish() {
mPresenter.getBrowserList();
mPresenter.getDefaultDesktop();
}
@Override
public void getBrowserListFinish(String whitelist) {
mPresenter.getBrowserBookmarks(whitelist);
public void getDefaultDesktopFinish() {
mPresenter.setLogoImg();
}
@Override
public void setLogoImgFinish() {
Log.e(TAG, "setLogoImgFinish: ");
}
@Override
public void getDeveloperFinish() {
mPresenter.getSystemSettingBegin();
}
@Override
public void setSystemSetting() {
mPresenter.getAppLimit();
}
@Override
public void getAppLimitFinish() {
mPresenter.getROMApp();
}
@Override
public void getROMAppFinish() {
mPresenter.getBrowserBookmarks();
}
@Override
public void getBrowserBookmarksFinish() {
mPresenter.getBrowserWhiteList();
}
@Override
public void setBrowserWhiteList() {
mPresenter.getDesktopIcon();
}
@@ -906,39 +881,33 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void setDefaultAppFinish() {
mPresenter.getROMApp();
}
@Override
public void getROMAppFinish() {
mPresenter.setLogoImg();
}
@Override
public void setLogoImgFinish() {
mPresenter.setTopApp();
}
@Override
public void setTopAppFinish() {
mPresenter.getDefaultDesktop();
}
@Override
public void getDefaultDesktopFinish() {
mPresenter.getPoweroffTime();
}
@Override
public void setPoweroffTime() {
mPresenter.getSnTimeControl();
}
@Override
public void getSnTimeControlFinish() {
mPresenter.getEBagCode();
}
@Override
public void getEBagCodeFinish() {
mPresenter.getWiFiPasswd();
}
@Override
public void setWiFiPasswd() {
MMKV.defaultMMKV().encode(MainAPresenter.GET_SETTING_FINISH_TIME, System.currentTimeMillis());
netWorkIsRunning = false;
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime()) + " ms");
mMMKV.encode(MainAPresenter.GET_SETTING_FINISH_TIME, System.currentTimeMillis());
mPresenter.getScreenLockState();
}
@Override
@@ -948,15 +917,17 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
showFloatingWindow(tips);
}
screenlocked = true;
SPUtils.put(MainService.this, "is_screen_lock", true);
SPUtils.put(MainService.this, "screen_tips", tips);
SPUtils.put(this, "is_screen_lock", true);
SPUtils.put(this, "screen_tips", tips);
} else {
if (!timelocked) {
hideFloatingWindow();
}
screenlocked = false;
SPUtils.put(MainService.this, "is_screen_lock", false);
SPUtils.put(MainService.this, "screen_tips", "");
SPUtils.put(this, "is_screen_lock", false);
SPUtils.put(this, "screen_tips", "");
}
}
}