version:1.0

update:2021-10-16 18:50:25
fix:增减检查弹窗,修复第一次启动不能自动下载
add:切换到奥乐云平台
This commit is contained in:
2021-10-16 18:51:47 +08:00
parent 3018660216
commit a4c68f0b37
58 changed files with 1028 additions and 194 deletions

View File

@@ -19,6 +19,7 @@ public class JGYActions {
* */
//后台上传所有应用包名 将添加到桌面
// TODO: 2021/10/13
public final static String ACTION_JGY_SHORTCUTLIST = "only_jgy_shortcut_list";

View File

@@ -0,0 +1,529 @@
package com.aoleyun.sn.activity;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
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.Bundle;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseActivity;
import com.aoleyun.sn.service.MainService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.ExampleUtil;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.Logutils;
import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils;
import com.blankj.utilcode.util.NetworkUtils;
import com.google.gson.JsonObject;
import java.util.concurrent.TimeUnit;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import cn.jpush.android.api.JPushInterface;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
public class CheckNetActivity extends BaseActivity implements MainContact.MainView, NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = CheckNetActivity.class.getSimpleName();
private MainPresenter mPresenter;
private boolean netWorkIsRunning = false;
private boolean updateApp = false;
//jiguang
public static boolean isForeground = false;
//for receive customer msg from jpush server
private CheckNetActivity.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
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_checknet);
// }
@Override
public int getLayoutId() {
return R.layout.activity_checknet;
}
@Override
public void initView() {
ButterKnife.bind(this);
mPresenter = new MainPresenter(this);
mPresenter.attachView(this);
mPresenter.setProvider(this);
JGYUtils.startServices(CheckNetActivity.this);
Logutils.e(TAG, "initView: " + "start request");
mPresenter.getFirstConnect();
NetworkUtils.registerNetworkStatusChangedListener(this);
getDevicesInfo();
}
private void getDevicesInfo() {
String sn = Utils.getSerial();
checkSNError(sn);
String macaddr = Utils.getAndroid10MAC(this);
if (TextUtils.isEmpty(macaddr)) {
} else {
mPresenter.getQRImage(macaddr);
}
Logutils.e(TAG, "getDevicesInfo: CustomVersion: " + Utils.getCustomVersion());
Logutils.e(TAG, "getDevicesInfo: RomVersion: " + Utils.getRomVersion());
}
private void checkSNError(String sn) {
//sn长度12位
if (sn.length() != 12) {
showSNErrorDialog("设备SN号码格式错误");
} else {
Logutils.e(TAG, "checkSNError: " + sn);
}
//检查平台和sn是否对应
if (JGYUtils.getInstance().checkSNPlatform(sn) != JGYUtils.getInstance().checkAppPlatform()) {
showSNErrorDialog("SN数据与平台不符请联系管理员");
}
//设置极光推送标签
JGYUtils.getInstance().getAppPlatform(platform -> mPresenter.setJpushPlatformTags(platform));
}
private void showSNErrorDialog(String content) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(content);
builder.setTitle("注意:");
builder.setIcon(R.mipmap.ic_launcher);
builder.setCancelable(true);
//设置正面按钮
builder.setPositiveButton("确定", (dialog, which) -> dialog.dismiss());
AlertDialog dialog = builder.create(); //创建AlertDialog对象
if (!this.isFinishing() && !dialog.isShowing()) {
dialog.show();
}
}
//执行所有接口耗时
long timeMillis;
@Override
public void initData() {
JPushInterface.init(this);
registerMessageReceiver();
Logutils.e("getMacAddress", Utils.getAndroid10MAC(this));
timeMillis = SystemClock.elapsedRealtime();
startService(new Intent(CheckNetActivity.this, MainService.class));
mPresenter.getLockedState();
mPresenter.getStudesInfo();
}
@Override
public void setQRImage(Bitmap qrImage) {
}
@Override
public void setBatchText(String text, int visibility) {
}
@Override
public void setClassText(String text, int visibility) {
}
@Override
public void setNumberText(String text, int visibility) {
}
@Override
public void setNameText(String text, int visibility) {
}
/**
* @param loocked 后台1是锁定底层0是锁定
*/
@Override
public void setLockedState(boolean loocked) {
//发送设备mac地址和信息
mPresenter.sendMACAddress();
//设置极光推送别名
mPresenter.setJpushAlias();
if (loocked) {
//上传APP信息
ApkUtils.getAppInfo(this);
if (netWorkIsRunning || MainService.netWorkIsRunning) {
//如果正在执行,不执行
return;
}
SaveListUtils.getList();
//获取系统管控
mPresenter.setJpushTags();
netWorkIsRunning = true;
} else {
netWorkIsRunning = false;
SysSettingUtils.setEnableSetting(this);
}
}
/**
* 首次使用默认关闭所有功能
*
* @param state
*/
@Override
public void setFirstConnect(boolean state) {
Logutils.e(TAG, "isFirstConnect: " + "end request");
if (state) {
mPresenter.setDisableSetting();
} else {
}
}
@Override
public void sendMACFinished() {
mPresenter.updateDeviceInfo();
}
@Override
public void updateDeviceInfoFinished() {
mPresenter.getSnTimeControl();
}
@Override
public void getSnTimeControlFinished() {
mPresenter.getEBagCode();
}
@Override
public void getEBagCodeFinished() {
}
@Override
public void setAliasFinished() {
mPresenter.checkStoreUpdate();
}
@Override
public void setJpushPlatformTagsFinished() {
}
@Override
public void checkStoreUpdateFinished() {
mPresenter.checkInfoUpdate();
}
@Override
public void checkInfoUpdateFinished() {
mPresenter.checkTestUpdate();
}
@Override
public void checkTestUpdateFinished() {
}
@Override
public void buttonCheckUpdateFinished(boolean update, JsonObject jsonObject) {
this.updateApp = !update;
if (update) {
showDialog(jsonObject);
} else {
Observable.timer(5000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> ToastUtil.show("已经是最新版本"));
}
}
/**
* @param noTag 为空没有错误都返回true
* 设备可以没有批次,但是没有批次相当于没有数据了,就不执行下面的请求了
*/
@Override
public void setTagsFinished(boolean noTag) {
if (noTag) {
Log.e(TAG, "setTagsFinished: " + "not set tag");
netWorkIsRunning = false;
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms");
} else {
mPresenter.getSystemSettingbegin();
}
}
private void showDialog(JsonObject jsonObject) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("更新:");
builder.setMessage("检测到有新版本,是否更新?");
builder.setIcon(R.mipmap.ic_launcher);
builder.setCancelable(true);
//设置正面按钮
builder.setPositiveButton("更新", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
JGYUtils.getInstance().installAPK(jsonObject);
dialog.dismiss();
}
});
//设置反面按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();
}
@Override
public void getSystemSettingbegin() {
mPresenter.getAppLimit();
}
@Override
public void getAppLimitFinished(String packageList) {
mPresenter.getDeviceBatch(packageList);
}
@Override
public void getDeviceBatchFinished() {
mPresenter.getForceDownload();
}
@Override
public void getForceDownloadFinished() {
mPresenter.getBrowserList();
}
@Override
public void getBrowserListFinished(String whitelist) {
mPresenter.getBrowserBookmarks(whitelist);
}
@Override
public void getBrowserBookmarksFinished() {
mPresenter.getBrowserWhiteList();
mPresenter.getDesktopIcon();
}
@Override
public void getDesktopIconFinished() {
mPresenter.getAppAutoStartUpdateAndNet();
}
@Override
public void getAppAutoStartUpdateAndNetFinished() {
mPresenter.getAppIDControl();
}
@Override
public void getAppIDControlFinished() {
mPresenter.setAppinsideWeb();
}
@Override
public void setAppinsideWebFinished() {
mPresenter.setSystemSetting();
}
@Override
public void setSystemSettingFinished() {
mPresenter.getDefaultApp();
}
@Override
public void setDefaultAppFinished() {
mPresenter.getROMApp();
}
@Override
public void getROMAppFinished() {
mPresenter.getDeveloper();
}
@Override
public void getDeveloperFinished() {
mPresenter.setLogoImg();
}
@Override
public void setLogoImgFinished() {
mPresenter.setTopApp();
}
@Override
public void setTopAppFinished() {
mPresenter.getDefaultDesktop();
}
@Override
public void getDefaultDesktopFinished() {
netWorkIsRunning = false;
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms");
}
@Override
public void setScreenLockStateFinished(boolean locked, String tips) {
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onPause() {
isForeground = false;
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
isForeground = true;
}
@Override
protected void onDestroy() {
super.onDestroy();
mPresenter.detachView();
JGYUtils.startServices(CheckNetActivity.this);
NetworkUtils.unregisterNetworkStatusChangedListener(this);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
lazyExit();
return true;
}
return super.onKeyDown(keyCode, event);
}
private long mPreClickTime;
private void lazyExit() {
if (System.currentTimeMillis() - mPreClickTime > 3000) {
ToastUtil.show("再按一次,退出");
mPreClickTime = System.currentTimeMillis();
} else {
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) {
Logutils.e("mObserver", "onSubscribe");
}
@Override
public void onNext(@NonNull View view) {
Logutils.e("mObserver", "onNext");
ToastUtil.show("正在检查更新");
}
@Override
public void onError(@NonNull Throwable e) {
Logutils.e("mObserver", "onError");
onComplete();
}
@Override
public void onComplete() {
Logutils.e("mObserver", "onComplete");
}
};
Observable.create(mObservableOnSubscribe)
.throttleFirst(10, TimeUnit.SECONDS)
//这句很关键这是RxJava中的操作符在规定时间内观察者不在接收被观察者发送的事件
.subscribe(mObserver);
}
//jiguang
public void registerMessageReceiver() {
mMessageReceiver = new CheckNetActivity.MessageReceiver();
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MESSAGE_RECEIVED_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
}
@Override
public void onDisconnected() {
Log.e("OnNetworkStatusChangedListener", "onDisconnected: ");
}
@Override
public void onConnected(NetworkUtils.NetworkType networkType) {
Log.e("OnNetworkStatusChangedListener", "onConnected: ");
timeMillis = SystemClock.elapsedRealtime();
//直接获取数据
mPresenter.getLockedState();
}
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");
}
}
} catch (Exception e) {
}
}
}
}

View File

@@ -55,7 +55,8 @@ public class HomeActivity extends AppCompatActivity {
initView();
debugTest();
new Handler().postDelayed(() -> {
startActivity(new Intent(HomeActivity.this, MainActivity.class));
// startActivity(new Intent(HomeActivity.this, MainActivity.class));
startActivity(new Intent(HomeActivity.this, CheckNetActivity.class));
finish();
}, 2000);
}

View File

@@ -30,7 +30,7 @@ import com.aoleyun.sn.bean.LogoImg;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.jpush.TagAliasOperatorHelper;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.HTTPInterface;
import com.aoleyun.sn.service.MainService;
import com.aoleyun.sn.utils.ApkUtils;

View File

@@ -9,7 +9,6 @@ import android.util.Log;
import androidx.multidex.MultiDexApplication;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.bean.BaseResponse;
@@ -19,9 +18,9 @@ import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.jpush.TagAliasOperatorHelper;
import com.aoleyun.sn.manager.AmapManager;
import com.aoleyun.sn.manager.FileManager;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.HTTPInterface;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import com.aoleyun.sn.statistics.AppInformation;
import com.aoleyun.sn.statistics.StatisticsInfo;
import com.aoleyun.sn.utils.ApkUtils;
@@ -265,7 +264,7 @@ public class BaseApplication extends MultiDexApplication {
//https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device/#_5
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(URLAddress.DELETE_JPUSH_ALIAS + Utils.getSerial())
.url(UrlAddress.DELETE_JPUSH_ALIAS + Utils.getSerial())
.header("Authorization", JGYUtils.getAuthorization())
.delete()
.build();
@@ -287,7 +286,7 @@ public class BaseApplication extends MultiDexApplication {
synchronized public static void cleanJpushTag() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(URLAddress.DELETE_JPUSH_TAG + Utils.getSerial())
.url(UrlAddress.DELETE_JPUSH_TAG + Utils.getSerial())
.header("Authorization", JGYUtils.getAuthorization())
.delete()
.build();
@@ -509,7 +508,6 @@ public class BaseApplication extends MultiDexApplication {
totalTimes = statisticsInfo.getTotalTimes();//全部次数
}
synchronized public static void setAPPUsage(List<String> lists) {
StatisticsInfo statisticsInfo = new StatisticsInfo(getAppContext());
List<AppInformation> list = null;

View File

@@ -6,8 +6,6 @@ import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
@@ -34,18 +32,15 @@ import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.jpush.TagAliasOperatorHelper;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
import com.aoleyun.sn.network.api.newapi.UpdateDeviceInfoApi;
import com.aoleyun.sn.service.MainService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.ForegroundAppUtil;
import com.aoleyun.sn.utils.Logger;
import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.TimeUtils;
import com.aoleyun.sn.utils.Utils;
import com.trello.rxlifecycle2.android.ActivityEvent;
import java.io.IOException;
import java.lang.reflect.Type;
@@ -59,8 +54,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.Call;
import okhttp3.Response;
import okhttp3.ResponseBody;
import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;

View File

@@ -1,4 +1,4 @@
package com.aoleyun.sn.manager;
package com.aoleyun.sn.network;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -75,15 +75,10 @@ public class NetInterfaceManager {
private OkHttpClient okHttpClient;
//超时时间
private int timeOut = 5;
private static int timeOut = 5;
// 缓存文件最大限制大小20M
private long cacheSize = 1024 * 1024 * 64;
private static long cacheSize = 1024 * 1024 * 64;
private Converter.Factory gsonConverterFactory = GsonConverterFactory.create();
private CallAdapter.Factory rxJavaCallAdapterFactory = RxJava2CallAdapterFactory.create();
public static final String ROOT_URL = BuildConfig.ROOT_URL;
public static final String WEBSOCKET_URL = BuildConfig.WebsocketURL;
public static final String HTTP_KEY = "YTM3YTAxNTJmMmZmNzkyM2E2YzIwZjlhZTc0NzNmMGI=";
private NetInterfaceManager(Context context) {
@@ -102,12 +97,12 @@ public class NetInterfaceManager {
okHttpClient = builder.build();
}
if (null == mRetrofit) {
if (mRetrofit == null) {
mRetrofit = new Retrofit.Builder()
.client(okHttpClient)
.baseUrl(ROOT_URL)
.addConverterFactory(gsonConverterFactory)
.addCallAdapterFactory(rxJavaCallAdapterFactory)
.baseUrl(BuildConfig.ROOT_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
}
@@ -116,7 +111,6 @@ public class NetInterfaceManager {
if (INSTANCE == null) {
INSTANCE = new NetInterfaceManager(context);
}
}
public static NetInterfaceManager getInstance() {

View File

@@ -7,7 +7,7 @@ import rxhttp.wrapper.annotation.DefaultDomain;
/**
* @author Administrator
*/
public class URLAddress {
public class UrlAddress {
//根网址
@DefaultDomain
public static final String HTTP_TAG_HEAD_NEW = BuildConfig.ROOT_URL;

View File

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

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.ForceDownloadBean;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface ForceDownloadApi {
@FormUrlEncoded
@POST(URLAddress.GET_FORCE_INSTALL_LIST)
@POST(UrlAddress.GET_FORCE_INSTALL_LIST)
Observable<ForceDownloadBean> getForceDownloadApi(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface NetAndLaunchApi {
@FormUrlEncoded
@POST(URLAddress.NET_AND_LAUNCH_API)
@POST(UrlAddress.NET_AND_LAUNCH_API)
Observable<NetAndLaunchBean> getNetAndLaunchApi(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -3,7 +3,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.Appground;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import java.util.List;
@@ -14,7 +14,7 @@ import retrofit2.http.POST;
public interface AppinsideWebApi {
@FormUrlEncoded
@POST(URLAddress.SET_APPINSIDEWEB)
@POST(UrlAddress.SET_APPINSIDEWEB)
Observable<BaseResponse<List<Appground>>> getAppinsideWeb(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserBookmarks;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -11,7 +11,7 @@ import retrofit2.http.POST;
public interface BrowserBookmarksApi {
@FormUrlEncoded
@POST(URLAddress.SET_HOMEPAG_TAG)
@POST(UrlAddress.SET_HOMEPAG_TAG)
Observable<BaseResponse<BrowserBookmarks>> getBrowserBookmarks(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.BrowserData;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -11,7 +11,7 @@ import retrofit2.http.POST;
public interface BrowserListApi {
@FormUrlEncoded
@POST(URLAddress.SET_BROWSER_LIST)
@POST(UrlAddress.SET_BROWSER_LIST)
Observable<BaseResponse<BrowserData>> getBrowserList(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.ForceDownloadData;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import java.util.List;
@@ -11,7 +11,7 @@ import retrofit2.http.GET;
import retrofit2.http.Query;
public interface CheckTestUpdateApi {
@GET(URLAddress.GET_SN_APP_TEST)
@GET(UrlAddress.GET_SN_APP_TEST)
Observable<BaseResponse<List<ForceDownloadData>>> getTestUpdate(
@Query("sn") String sn
);

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface CheckUpdateApi {
@FormUrlEncoded
@POST(URLAddress.CHECK_UPDATE)
@POST(UrlAddress.CHECK_UPDATE)
//1MTK平台 2展锐平台
Observable<BaseResponse> getUpdate(
@Field("package") String packages,

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface CustomROMAppApi {
@FormUrlEncoded
@POST(URLAddress.GET_ROM_APP)
@POST(UrlAddress.GET_ROM_APP)
Observable<BaseResponse> getROMApp(
@Field("key") String key,
@Field("version_number") String version_number

View File

@@ -2,14 +2,14 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.DefaultApp;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface DefaultAppApi {
@GET(URLAddress.GET_DEFAULT_APP)
@GET(UrlAddress.GET_DEFAULT_APP)
Observable<BaseResponse<DefaultApp>> getDefaultApp(
@Query("sn") String sn
);

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface DesktopIconApi {
@FormUrlEncoded
@POST(URLAddress.GET_HIDE_DESKTOPICON)
@POST(UrlAddress.GET_HIDE_DESKTOPICON)
Observable<BaseResponse> getDesktopIcon(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface DevicesLockedStateApi {
@FormUrlEncoded
@POST(URLAddress.GET_DEVICES_LOCKED)
@POST(UrlAddress.GET_DEVICES_LOCKED)
Observable<BaseResponse> getLockedState(
@Field("sn") String sn
);

View File

@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.AppListInfo;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import java.util.List;
@@ -13,7 +13,7 @@ import retrofit2.http.POST;
public interface GetAllAppApi {
@FormUrlEncoded
@POST(URLAddress.GET_ALL_APP)
@POST(UrlAddress.GET_ALL_APP)
Observable<BaseResponse<List<AppListInfo>>> getAllAppList(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface GetAppLogApi {
@FormUrlEncoded
@POST(URLAddress.GET_APP_LOG)
@POST(UrlAddress.GET_APP_LOG)
Observable<BaseResponse> getAppLog(
@Field("sn") String sn,
@Field("random") String random,

View File

@@ -1,6 +1,6 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
@@ -8,7 +8,7 @@ import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GetDesktopApi {
@GET(URLAddress.GET_DESKTOP)
@GET(UrlAddress.GET_DESKTOP)
Observable<ResponseBody> getDesktop(
@Query("sn") String sn
);

View File

@@ -1,14 +1,14 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GetDeveloperApi {
@GET(URLAddress.GET_DEVELOPER)
@GET(UrlAddress.GET_DEVELOPER)
Observable<BaseResponse> getDeveloperState(
@Query("sn") String sn
);

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface GetEBagCodeApi {
@FormUrlEncoded
@POST(URLAddress.GET_EBAG_CODE)
@POST(UrlAddress.GET_EBAG_CODE)
Observable<BaseResponse> getEBagCode(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,14 +1,14 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface GetJpushTagsApi {
@GET(URLAddress.GET_DEVICES_TAGS)
@GET(UrlAddress.GET_DEVICES_TAGS)
Observable<BaseResponse> getJpushTags(
@Query("sn") String sn
);

View File

@@ -2,14 +2,14 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.LogoImg;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface LogoImgApi {
@GET(URLAddress.GET_LOGO_IMG)
@GET(UrlAddress.GET_LOGO_IMG)
Observable<BaseResponse<LogoImg>> getLogoImg(
@Query("sn") String sn
);

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface MACAddressApi {
@FormUrlEncoded
@POST(URLAddress.SEND_DEVICES)
@POST(UrlAddress.SEND_DEVICES)
Observable<BaseResponse> sendMACaddress(
@Field("sn") String sn,
@Field("mac") String mac,

View File

@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -11,7 +11,7 @@ import retrofit2.http.POST;
public interface NewAppinsideWebApi {
@FormUrlEncoded
@POST(URLAddress.SET_APPINSIDEWEB)
@POST(UrlAddress.SET_APPINSIDEWEB)
Observable<BaseResponse> getAppinsideWeb(
@Field("key") String key,
@Field("sn") String sn

View File

@@ -1,14 +1,14 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface ScreenLockStateApi {
@GET(URLAddress.GET_LOCK_SCREEN_STATE)
@GET(UrlAddress.GET_LOCK_SCREEN_STATE)
Observable<BaseResponse> getScreenLockState(
@Query("sn") String sn
);

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface SendDownloadInfoApi {
@FormUrlEncoded
@POST(URLAddress.SEND_DOWNLOAD_FILE_INFO)
@POST(UrlAddress.SEND_DOWNLOAD_FILE_INFO)
Observable<BaseResponse> sendDownloadTimes(
@Field("key") String key,
@Field("sn") String sn,

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -10,7 +10,7 @@ import retrofit2.http.POST;
public interface SendDownloadTimesApi {
@FormUrlEncoded
@POST(URLAddress.SEND_DOWNLOAD_TIMES)
@POST(UrlAddress.SEND_DOWNLOAD_TIMES)
Observable<BaseResponse> sendDownloadTimes(
@Field("key") String key,
@Field("sn") String sn,

View File

@@ -1,7 +1,7 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
@@ -12,7 +12,7 @@ import retrofit2.http.Part;
public interface SendScreenshotApi {
@Multipart
@POST(URLAddress.SEND_SCREENSHOT)
@POST(UrlAddress.SEND_SCREENSHOT)
Observable<BaseResponse> sendScreenshot(
@Field("sn") String sn,
@Field("createtime") long createtime,

View File

@@ -1,14 +1,14 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface SnTimeControlApi {
@GET(URLAddress.GET_SN_TIME_CONTROL)
@GET(UrlAddress.GET_SN_TIME_CONTROL)
Observable<BaseResponse> getSnTimeControl(
@Query("sn") String sn
);

View File

@@ -2,7 +2,7 @@ package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.bean.StudentsInfo;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.Field;
@@ -11,7 +11,7 @@ import retrofit2.http.POST;
public interface StudentsInfosApi {
@FormUrlEncoded
@POST(URLAddress.GET_STUDENTS_INFO)
@POST(UrlAddress.GET_STUDENTS_INFO)
Observable<BaseResponse<StudentsInfo>> getStudentsInfo(
@Field("sn") String sn
);

View File

@@ -1,14 +1,14 @@
package com.aoleyun.sn.network.api.newapi;
import com.aoleyun.sn.bean.BaseResponse;
import com.aoleyun.sn.network.URLAddress;
import com.aoleyun.sn.network.UrlAddress;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface TopAppControlApi {
@GET(URLAddress.GET_TOP_APP_CONTROL)
@GET(UrlAddress.GET_TOP_APP_CONTROL)
Observable<BaseResponse> getSnAppControl(
@Query("sn") String sn
);

View File

@@ -33,7 +33,7 @@ import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.base.BaseApplication;
import com.aoleyun.sn.comm.CommonDatas;
import com.aoleyun.sn.manager.AmapManager;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.HTTPInterface;
import com.aoleyun.sn.service.MainService;
import com.aoleyun.sn.utils.ApkUtils;

View File

@@ -40,7 +40,7 @@ import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.XAPKUtils;
import com.aoleyun.sn.KeepAliveConnection;
import com.aoleyun.sn.base.BaseApplication;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.ServiceAliveUtils;
import com.aoleyun.sn.utils.ToastUtil;
@@ -136,6 +136,7 @@ public class GuardService extends Service {
@Override
public void onCreate() {
super.onCreate();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// 8.0之后需要在
registmNewAppReceiver();
@@ -146,7 +147,6 @@ public class GuardService extends Service {
Observable.create(subscribe)
.throttleFirst(10, TimeUnit.MINUTES)
.subscribe(timeObserver);
super.onCreate();
}
@Override

View File

@@ -78,6 +78,7 @@ public class MainService extends Service implements MainContact.MainView, Networ
runningTime = SystemClock.elapsedRealtime();
//直接获取数据
ToastUtil.betaShow("网络已连接");
mPresenter.getLockedState();
start.onstar(SystemClock.elapsedRealtime());
}
@@ -147,6 +148,7 @@ public class MainService extends Service implements MainContact.MainView, Networ
@Override
public void onCreate() {
super.onCreate();
lifecycleSubject.onNext(ActivityEvent.CREATE);
mPresenter = new MainPresenter(this);
mPresenter.attachView(this);
@@ -171,7 +173,6 @@ public class MainService extends Service implements MainContact.MainView, Networ
//发送设备mac地址和信息
mPresenter.sendMACAddress();
setFloatingWindow(this);
super.onCreate();
}
@Override

View File

@@ -17,9 +17,10 @@ import android.util.Log;
import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.BuildConfig;
import com.blankj.utilcode.util.NetworkUtils;
import com.aoleyun.sn.KeepAliveConnection;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.utils.Logutils;
import com.aoleyun.sn.utils.ServiceAliveUtils;
import com.aoleyun.sn.utils.Utils;
@@ -162,7 +163,7 @@ public class StepService extends Service implements NetworkUtils.OnNetworkStatus
* 初始化websocket连接
*/
private void initSocketClient() {
URI uri = URI.create(NetInterfaceManager.WEBSOCKET_URL);
URI uri = URI.create(BuildConfig.WebsocketURL);
// URI uri = URI.create("ws://echo.websocket.org");
// URI uri = URI.create("ws://123.207.136.134:9010/ajaxchattest");
client = new JWebSocketClient(uri) {

View File

@@ -29,7 +29,6 @@ import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.action.JGYActions;
import com.aoleyun.sn.comm.CommonDatas;
import com.aoleyun.sn.comm.PackageNames;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.download.DownloadEntity;
@@ -37,7 +36,7 @@ import com.google.gson.Gson;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.bean.UploadAppInfo;
import com.aoleyun.sn.manager.NetInterfaceManager;
import com.aoleyun.sn.network.NetInterfaceManager;
import java.io.BufferedReader;
import java.io.DataOutputStream;

View File

@@ -921,6 +921,7 @@ public class JGYUtils {
this.add("com.uiuios.jgy1");
this.add("com.uiuios.jgy2");
this.add("com.tt.ttutils");
this.add("com.android.uiuios");
}};
HashSet<String> pkgSet = new HashSet<>(Arrays.asList(packageList.split(",")));
pkgSet.addAll(packages);