From e38530fd81faf51b8313e43e780fe121631a64fa Mon Sep 17 00:00:00 2001 From: fanhuitong <981964879@qq.com> Date: Fri, 2 Jul 2021 18:04:10 +0800 Subject: [PATCH] =?UTF-8?q?version:2.1.8=20update:=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=B8=8D=E7=94=A8=E7=9A=84=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=BC=80?= =?UTF-8?q?=E6=9C=BA=E5=8F=91=E9=80=81=E7=99=BD=E5=90=8D=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E6=8E=A7=20fix:=E4=BF=AE=E5=A4=8Dqch=5Fapp=5Fpower=5Fon?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=97=B6=E8=AE=BE=E5=A4=87=E6=96=AD=E7=BD=91?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=BC=80=E6=9C=BA=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E5=86=99=E5=85=A5bug=EF=BC=8C=20add:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 8 +- app/src/main/AndroidManifest.xml | 5 +- .../mjsheng/myappstore/action/JGYActions.java | 3 +- .../myappstore/activity/DiscardActivity.java | 1788 ----------------- .../myappstore/activity/MainActivity.java | 4 +- .../myappstore/activity/MainPresenter.java | 7 +- .../com/mjsheng/myappstore/bean/LogoImg.java | 8 + .../myappstore/network/HTTPInterface.java | 7 +- .../myappstore/receiver/BootReceiver.java | 8 +- .../myappstore/receiver/MyJPushReceiver.java | 259 +-- .../myappstore/server/DiscardServer.java | 1488 -------------- .../myappstore/server/GuardService.java | 19 +- .../mjsheng/myappstore/utils/BootManager.java | 44 + .../mjsheng/myappstore/utils/JGYUtils.java | 123 +- .../myappstore/utils/SysSettingUtils.java | 49 +- .../mjsheng/myappstore/utils/URLUtils.java | 12 +- app/src/main/res/drawable-hdpi/locked.png | Bin 1740 -> 2602 bytes app/src/main/res/drawable-hdpi/unlock.png | Bin 0 -> 2166 bytes 18 files changed, 232 insertions(+), 3600 deletions(-) delete mode 100644 app/src/main/java/com/mjsheng/myappstore/activity/DiscardActivity.java delete mode 100644 app/src/main/java/com/mjsheng/myappstore/server/DiscardServer.java create mode 100644 app/src/main/java/com/mjsheng/myappstore/utils/BootManager.java create mode 100644 app/src/main/res/drawable-hdpi/unlock.png diff --git a/app/build.gradle b/app/build.gradle index c5702d1..4bc614a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,9 +41,9 @@ android { //新平台正式 newly { flavorDimensions "default" - versionCode 515 + versionCode 518 //versionCode 1037 - versionName "2.1.5" + versionName "2.1.8" /*********************************极光推送************************************/ manifestPlaceholders = [ JPUSH_PKGNAME: "com.jiaoguanyi.appstore", @@ -55,7 +55,7 @@ android { /*********************************极光推送end************************************/ buildConfigField "String", "ROOT_URL", '"http://name.jiaoguanyi.cn/api/"' buildConfigField "String", "WebsocketURL", '"ws://47.119.147.245:2345"' - buildConfigField "String", "SCREEN_URL", '"http://47.119.147.245:2018"' + buildConfigField "String", "SCREEN_URL", '"https://name.jiaoguanyi.cn:2018/wm/is_online"' } //新平台测试 @@ -74,7 +74,7 @@ android { /*********************************极光推送end************************************/ buildConfigField "String", "ROOT_URL", '"http://name.uiuios.com/api/"' buildConfigField "String", "WebsocketURL", '"ws://39.108.116.195:2345"' - buildConfigField "String", "SCREEN_URL", '"http://39.108.116.195:2018"' + buildConfigField "String", "SCREEN_URL", '"https://name.uiuios.com:2018/wm/is_online"' } // //老平台正式 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 57d3e05..2f29617 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -119,10 +119,7 @@ - + = (SystemClock.uptimeMillis() - DURATION)) { - mHits = new long[COUNTS];//重新初始化数组 - ToastUtil.show("正在检查更新"); - HTTPInterface.checkUpdate(mHandler, BuildConfig.APPLICATION_ID); - } - } - - - private void initData() { - Log.e("mjhsneg", "gagagag--------------------------" + Utils.getSerial()); - int first = (int) SPUtils.get(DiscardActivity.this, "first_connect", 0); - //开机第一次管控默认关闭所有功能 - if (first == 0) { -// SysSettingUtils.setDisableSetting(DiscardActivity.this);//设置系统管控 - } - getLockedState(mHandler); -// MyApplication.getInstance().getWhitePackageList(); - -// update();//接口更新app - checkUpdate();//更新app - - Log.e("mac", Utils.getAndroid7MAC()); - DeviceInfo = (int) SPUtils.get(this, "isLogined", 2); - switch (DeviceInfo) { - case 0: - setImageAndText(imageView, "设备未绑定"); - break; - case 1: - setImageAndText(imageView, "设备已绑定"); - break; - case 2: - setImageAndText(imageView, "未经验证的设备,请联系客服"); - break; - } - } - - private void setImageAndText(ImageView imageView, String text) { -// Bitmap bitmap = Utils.createQRImage(Utils.getSn(), 250, 250); -// imageView.setImageBitmap(bitmap); - } - - -// Handler handler = new Handler() { -//// @Override -//// public void handleMessage(Message msg) { -//// super.handleMessage(msg); -//// switch (msg.what) { -//// case 0: -//// SPUtils.put(MainActivity.this, "isLogined", 0); -//// setImageAndText(imageView, "设备未绑定"); -//// break; -//// case 1: -//// UserInfo userInfo = (UserInfo) msg.obj; -//// SPUtils.put(MainActivity.this, "isLogined", 1); -//// SPUtils.put(MainActivity.this, "member_id", userInfo.getMember_id()); -//// SPUtils.put(MainActivity.this, "sn_id", userInfo.getId()); -//// setImageAndText(imageView, "设备已绑定"); -//// break; -//// case 2: -//// SPUtils.put(MainActivity.this, "isLogined", 2); -//// setImageAndText(imageView, "未经验证的设备,请联系客服"); -//// break; -//// } -//// } -//// }; - -// private String[] permission = new String[]{ -// Permission.SYSTEM_ALERT_WINDOW, -// Permission.CAMERA, -// Permission.READ_SMS, -// Permission.RECEIVE_SMS, -// Permission.SEND_SMS, -// Permission.REQUEST_INSTALL_PACKAGES,//不用请求也可以安装 -// Permission.READ_EXTERNAL_STORAGE, -// Permission.WRITE_EXTERNAL_STORAGE, -// Permission.READ_PHONE_STATE -// }; - -// public void requestPermission() { -// XXPermissions.with(this) -// // 可设置被拒绝后继续申请,直到用户授权或者永久拒绝 -// .constantRequest() -// // 支持请求6.0悬浮窗权限8.0请求安装权限 -// //.permission(Permission.REQUEST_INSTALL_PACKAGES) -// // 不指定权限则自动获取清单中的危险权限 -// .permission(permission) -// .request(new OnPermission() { -// -// @Override -// public void hasPermission(List granted, boolean isAll) { -// if (isAll) { -// File file = new File(PathUtils.getExternalDownloadsPath() + "/jgy/"); -// if (!file.exists()){ -// file.mkdirs(); -// } -// } else { -// ToastUtil.show("需要授予所有权限才能正常使用本程序!"); -// } -// } -// -// @Override -// public void noPermission(List denied, boolean quick) { -// if (quick) { -// ToastUtil.show("被永久拒绝授权,请手动授予权限!"); -// //如果是被永久拒绝就跳转到应用权限系统设置页面 -// XXPermissions.gotoPermissionSettings(MainActivity.this); -// } else { -// ToastUtil.show("获取权限失败"); -// } -// } -// }); -// } - - private boolean locked = false; - - public void getLockedState(final Handler handler) { - OkGo.post(URLAddress.GET_DEVICES_LOCKED) - .params("sn", Utils.getSerial()) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - Log.e("onSuccess", s); - Log.e("getSerial", Utils.getSerial()); - com.alibaba.fastjson.JSONObject msgObject = JSON.parseObject(s); - Log.e("getLockedState", s); - Integer code = (msgObject.getInteger("code")); - if (code == 200) { - com.alibaba.fastjson.JSONObject dataArray = msgObject.getJSONObject("data"); - int lock = dataArray.getInteger("lock"); - Log.e("ttlocked", String.valueOf(lock)); - if (lock == 0) { - locked = false; - boolean se = Settings.System.putInt(DiscardActivity.this.getContentResolver(), "qch_unlock_ipad", 1); - Log.e("ttlocked1", "getLockedState---------" + Settings.System.getString(DiscardActivity.this.getContentResolver(), "qch_unlock_ipad")); -// SysSettingUtils.setEnableSetting(DiscardActivity.this); - SPUtils.put(DiscardActivity.this, "first_connect", 1); - Log.e("ttlocked1", "qch_unlock_ipad---------" + locked + se); - handler.sendEmptyMessage(-3); - } else { - locked = true; - Settings.System.putInt(DiscardActivity.this.getContentResolver(), "qch_unlock_ipad", 0); - Log.e("ttlocked2", "qch_unlock_ipad---------" + locked); - - String a = Settings.System.getString(DiscardActivity.this.getContentResolver(), "DeselectBrowserArray"); - Log.e("ttlocked2", "DeselectBrowserArray---------" + a); - String b = Settings.System.getString(DiscardActivity.this.getContentResolver(), "qch_webblack_url"); - Log.e("ttlocked2", "qch_webblack_url---------" + b); - handler.sendEmptyMessage(3); - HTTPInterface.setJpushTags(DiscardActivity.this); - sendMACaddress(); - timerImitate(); - lazyLoading(); - } - } else if (code == -300) { -// ApkUtils.uninstallAllApp(MainActivity.this); - handler.sendEmptyMessage(-3); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("onError", "error"); - } - - });// 请求方式和请求url - } - - private void lazyLoading() { - Observable.timer(1000, TimeUnit.MILLISECONDS) - .observeOn(rx.android.schedulers.AndroidSchedulers.mainThread()) - .subscribe(new Action1() { - @Override - public void call(Long aLong) { -// getDeselectBrowerID();//浏览器网址管控 - HTTPInterface.setBrowserBlackList(DiscardActivity.this);//浏览器网址管控 - HTTPInterface.setHomepagtag(DiscardActivity.this);//设置主页和标签 -// HTTPInterface.getAppinsideWeb(DiscardActivity.this);//app内部网页管控 - HTTPInterface.setHideDesktopIcon(DiscardActivity.this);//设置桌面图标隐藏 - getDeselectID();//ID管控 - getAppLimitApi();//写入可被安装的包名 -// getAppInfo();//上传APP信息 - ApkUtils.getAppInfo(DiscardActivity.this);//上传APP信息 - getSystemSetting();//设置系统管控 - getNetAndLaunchSetting();//联网管控 -// Aria.download(this).removeAllTask(true); - getForceDownload();//强制下载apk - JGYUtils.getInstance().resetDevice();//恢复出厂设置 - // fromNetToUpdate(); - String registrationID = JPushInterface.getRegistrationID(DiscardActivity.this); - Log.e("mjsheng", registrationID + "------------------------"); - SaveListUtils.getList(); - } - }); - } - - - private void checkUpdate() { - HTTPInterface.checkUpdate(mHandler, "com.jiaoguanyi.store"); -// HTTPInterface.checkUpdate(mHandler, "com.jiaoguanyi.appstore"); - HTTPInterface.checkTestUpdate(DiscardActivity.this); - } - - private Handler mHandler = new Handler() { - @SuppressLint("HandlerLeak") - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - switch (msg.what) { - case 100: -// ToastUtil.show("已是最新版本"); - break; - case 200: - com.alibaba.fastjson.JSONObject jsonObject = (com.alibaba.fastjson.JSONObject) msg.obj; - installAPK(jsonObject); - break; - case -200: - Log.e("fht", "no update"); - break; - case 2: - StudentsInfo info = com.alibaba.fastjson.JSONObject.parseObject(String.valueOf(msg.obj), StudentsInfo.class); - SPUtils.put(DiscardActivity.this, "admin_id", info.getAdmin_id()); - if (null != info) { - if (TextUtils.isEmpty(info.getBatch())) { - tv_batch.setVisibility(View.GONE); - tv_batch.setText("暂无信息"); - } else { - tv_batch.setVisibility(View.VISIBLE); - tv_batch.setText(info.getBatch()); - SPUtils.put(DiscardActivity.this, "batch", info.getBatch()); - } - if (TextUtils.isEmpty(info.getClasses())) { - layout_class.setVisibility(View.GONE); - tv_class.setText("暂无信息"); - } else { - layout_class.setVisibility(View.VISIBLE); - tv_class.setText(info.getClasses()); - SPUtils.put(DiscardActivity.this, "classes", info.getClasses()); - } - if (TextUtils.isEmpty(info.getSno())) { - layout_number.setVisibility(View.GONE); - tv_number.setText("暂无信息"); - } else { - layout_number.setVisibility(View.VISIBLE); - tv_number.setText(info.getSno()); - SPUtils.put(DiscardActivity.this, "sno", info.getSno()); - } - if (TextUtils.isEmpty(info.getRealname())) { - layout_name.setVisibility(View.GONE); - tv_name.setText("暂无信息"); - } else { - layout_name.setVisibility(View.VISIBLE); - tv_name.setText(info.getRealname()); - SPUtils.put(DiscardActivity.this, "realname", info.getRealname()); - } - } - - break; - case -2: -// tv_batch.setText("暂无信息"); -// tv_class.setText("暂无信息"); -// tv_number.setText("暂无信息"); -// tv_name.setText("暂无信息"); - String batch = (String) SPUtils.get(DiscardActivity.this, "batch", "暂无信息"); - if (TextUtils.isEmpty(batch) || "暂无信息".equals(batch)) { - tv_batch.setVisibility(View.GONE); - } else { - tv_batch.setText(batch); - } - - String classes = (String) SPUtils.get(DiscardActivity.this, "classes", "暂无信息"); - if (TextUtils.isEmpty(classes) || "暂无信息".equals(classes)) { - layout_class.setVisibility(View.GONE); - } else { - tv_class.setText(classes); - } - String sno = (String) SPUtils.get(DiscardActivity.this, "sno", "暂无信息"); - if (TextUtils.isEmpty(sno) || "暂无信息".equals(sno)) { - layout_number.setVisibility(View.GONE); - } else { - tv_number.setText(sno); - } - String realname = (String) SPUtils.get(DiscardActivity.this, "realname", "暂无信息"); - if (TextUtils.isEmpty(realname) || "暂无信息".equals(realname)) { - layout_name.setVisibility(View.GONE); - } else { - tv_name.setText(realname); - } - break; - case 3: - iv_locked.setVisibility(View.VISIBLE); - break; - case -3: - iv_locked.setVisibility(View.GONE); - break; - default: - break; - } - } - - }; - - private void installAPK(com.alibaba.fastjson.JSONObject jsonObject) { - final String url = jsonObject.getString("url"); - int versionCode = jsonObject.getInteger("version_code"); - final String packageName = jsonObject.getString("package"); - String app_name = jsonObject.getString("app_name"); - final com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject(); - object.put("app_name", app_name); - object.put("app_package", packageName); - PackageManager pm = getPackageManager(); - PackageInfo packageInfo = null; - try { - packageInfo = pm.getPackageInfo(packageName, 0); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } - if (packageInfo == null || packageInfo.versionCode < versionCode) { - if (packageName.equalsIgnoreCase("com.jiaoguanyi.store")) { -// Aria.download(this) -// .load(url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(packageName) + ".apk", true) -// .setExtendField(object.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, url, object); - return; - } - AlertDialog.Builder builder = new AlertDialog.Builder(DiscardActivity.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) { -// Aria.download(this) -// .load(url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(packageName) + ".apk", true) -// .setExtendField(object.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(DiscardActivity.this, url, object); - dialog.dismiss(); - } - }); - //设置反面按钮 - builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); - builder.show(); - } else { - if (!packageName.equalsIgnoreCase("com.jiaoguanyi.store")) { - mHandler.postDelayed(toast, 4000); - } - Log.e("fht", "已是最新版本"); - } - - } - - private Runnable toast = new Runnable() { - - @Override - public void run() { - ToastUtil.show("已是最新版本"); - } - }; - - - @Override - protected void onStop() { - super.onStop(); - } - - @Override - protected void onPause() { - isForeground = false; - super.onPause(); - } - - @Override - protected void onResume() { - super.onResume(); - isForeground = true; - Intent allIntent = new Intent(); -// allIntent.setAction(Utils.DOWNLOAD_ALLTASK_ACTION); - sendBroadcast(allIntent); -// loadHeadImg(Configure.HTTP_TAG_HOME_PAGE_URL); - getLockedState(mHandler); -// MyApplication.getInstance().getWhitePackageList(); - getInfo(mHandler); -// CmdUtil.execute(" screencap -p /sdcard/" + "screen" + System.currentTimeMillis() + ".png"); - } - - private void getInfo(final Handler handler) { - OkGo.post(URLAddress.GET_STUDENTS_INFO) - .params("sn", Utils.getSerial()) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - try { - LzyResponse lzyResponse = (LzyResponse) JSON.parseObject(s, LzyResponse.class); - Message message = new Message(); - if (lzyResponse.code == 200) { - message.what = 2; - message.obj = lzyResponse.data; - handler.sendMessage(message); - } else { - handler.sendEmptyMessage(-2); - } - } catch (Exception e) { - Log.e("fht", "getInfo:" + e.getMessage()); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("onError", "error:" + e.getMessage()); - handler.sendEmptyMessage(-2); - } - - });// 请求方式和请求url - } - -// private void loadHeadImg(String URL) { -// BrankPicApi brankPicApi = Network.getBrankPicApi(); -// brankPicApi.getBrankPicApi(Configure.HTTP_KEY, Utils.getSerial(), "1") -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Observer() { -// @Override -// public void onSubscribe(Disposable d) { -// -// } -// -// @Override -// public void onNext(CommonPicBean projectPicBean) { -// paraData(projectPicBean); -// Log.e("mjsheng", "brankPicApi---" + projectPicBean.toString()); -// } -// -// @Override -// public void onError(Throwable e) { -//// Utils.showToast(MainActivity.this, "网络出错!"); -// Log.e("mjsheng", "brankPicApi---error----" + e.getMessage()); -// -// } -// -// @Override -// public void onComplete() { -// -// } -// }); -// -// -// } - -// private void paraData(CommonPicBean categoryPicBean) { -// int code = categoryPicBean.getCode(); -// switch (code) { -// case 200: -// final List data = categoryPicBean.getData(); -//// if (data != null && data.size() > 0) { -//// List list = new ArrayList<>(); -//// for (int i = 0; i < data.size(); i++) { -//// list.add(data.get(i).getImg()); -//// } -//// webBannerAdapter = new WebBannerAdapter(getActivity(), list); -//// webBannerAdapter.setOnBannerItemClickListener(new BannerLayout.OnBannerItemClickListener() { -//// @Override -//// public void onItemClick(int position) { -//// loadProjectByType(Configure.HTTP_TAG_BRAND_DETAILS_URL, data.get(position).getId(), data.get(position).getName()); -//// } -//// }); -//// recyclerBanner.setAdapter(webBannerAdapter); -//// mAdapter = new TopRecyclerViewAdapter(getActivity(), "home", list, new TopRecyclerViewAdapter.HorizontalScrollViewListener() { -//// @Override -//// public void onClick(String iconUrl, int position) { -//// sound.playSoundEffect(); -//// loadProjectByType(Configure.HTTP_TAG_BRAND_DETAILS_URL, data.get(position).getId(), data.get(position).getName()); -//// } -//// }); -//// mTopRlView.setAdapter(mAdapter); -//// } else { -//// // Utils.showToast(getContext(), "数据为空!"); -//// Log.e("mjsheng", "推荐页轮播图为空!"); -//// } -// break; -// case -200: -// paraError(categoryPicBean.getMsg()); -// break; -// } -// } - -// private void paraError(String msg) { -// switch (msg) { -// case "没有找到SN码": -// ToastUtil.show(msg); -// break; -// default: -// ToastUtil.show(msg); -// break; -// } -// } - - @Override - protected void onDestroy() { - super.onDestroy(); - - } - - - @Override - public void finish() { - super.finish(); - } - -// private void getAppInfo() { -// ArrayList appList = new ArrayList<>(); //用来存储获取的应用信息数据 -// List packages = getPackageManager().getInstalledPackages(0); -// -// for (int i = 0; i < packages.size(); i++) { -// PackageInfo packageInfo = packages.get(i); -// if (ApkUtils.systemapp.contains(packageInfo.packageName)) { -// continue; -// } -// UploadAppInfo uploadAppInfo = new UploadAppInfo(); -// uploadAppInfo.setApp_name(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString()); -// uploadAppInfo.setPackage_name(packageInfo.packageName); -// uploadAppInfo.setId(i); -// String firstInstallTime = Utils.transferLongToDate(packageInfo.firstInstallTime); -// uploadAppInfo.setInstall_time(firstInstallTime); -// uploadAppInfo.setVersionCode(String.valueOf(packageInfo.versionCode)); -// // Log.e("mjsheng", "------------------" + uploadAppInfo); -// if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) { -// } else { -// //非系统应用 -// appList.add(uploadAppInfo); -// } -// -// -// } -// -// // Log.e("mjsheng", "UploadAppInfo========" + appList.toString()); -// -// Gson gson = new Gson(); -// String jsonString = gson.toJson(appList); -// Log.e("mjsheng", "json========" + jsonString); -// -// UploadAppInfoApi uploadAppInfoApi = Network.getUploadAppInfoApi(); -// uploadAppInfoApi.getUploadAppInfoApi(Configure.HTTP_KEY, Utils.getSerial(), jsonString) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new Observer() { -// @Override -// public void onSubscribe(Disposable d) { -// -// } -// -// @Override -// public void onNext(ResponseBody responseBody) { -// try { -// Log.e("mjhseng", "上传的结果" + responseBody.string()); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// -// @Override -// public void onError(Throwable e) { -// Log.e("mjsheng", "UploadAppInfoApi=onError:"); -// } -// -// @Override -// public void onComplete() { -// -// } -// }); -// } - - - private void initJpush() { - JPushInterface.init(this); - setAlias(); - - String rid = JPushInterface.getRegistrationID(DiscardActivity.this); - if (!rid.isEmpty()) { -// ToastUtil.debugShow("RegId:" + rid); - Log.e("jiguang", "RegId:" + rid); - } else { -// ToastUtil.show("Get registration fail, JPush init failed!"); -// Toast.makeText(this, "Get registration fail, JPush init failed!", Toast.LENGTH_SHORT).show(); - } - JPushInterface.getAlias(this, new Random().nextInt(100)); -// JPushInterface.setAlias(this, Utils.getSerial(), new TagAliasCallback() { -// @Override -// public void gotResult(int i, String s, Set set) { -// if (set == null) { -// Log.e("mjhseng", "set is null"); -// } else { -// Log.e("mjhseng", "set ---" + set.toString()); -// } -// Log.e("JPushInterface", s + "---" + i + "---"); -// if (i == 0) { -// Log.e("JPushInterface", "JPush绑定成功"); -// } else if (i == 6001) { -// Log.e("JPushInterface", "无效的设置,用户名为空"); -// } else if (i == 6002) { -// Log.e("JPushInterface", "设置超时,请重试"); -// timerImitate(); -// } else if (i == 6011) { -// Log.e("JPushInterface", "短时间内操作过于频繁"); -// } else if (i == 996) { -// Log.e("JPushInterface", "网络连接断开"); -// } -// } -// }); - - } - - //重新设置jpush - private void timerImitate() { - Observable.timer(10000, TimeUnit.MILLISECONDS) - .observeOn(rx.android.schedulers.AndroidSchedulers.mainThread()) - .subscribe(new Action1() { - @Override - public void call(Long aLong) { - Log.e("JPushInterface", "JPushInterface重新加载"); - initJpush();//初始化极光推送 - HTTPInterface.setJpushTags(DiscardActivity.this); - } - }); - } - - - // 用来计算返回键的点击间隔时间 - private long exitTime = 0; - private long mPreClickTime; - - @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 void lazyExit() { - if (System.currentTimeMillis() - mPreClickTime > 1000) { - ToastUtil.show("再按一次,退出"); - mPreClickTime = System.currentTimeMillis(); - } else { - finish(); - } - } - - private void getAppLimitApi() { - AppLimitApi appLimitApi = NetInterfaceManager.getAppLimitApi(); - appLimitApi.getAppLimitApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - Log.e("mjhseng", responString); - JSONObject jsonObject = JSON.parseObject(responString); - int code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - String result = data.getString("result"); -// writeAppPackageList(result); - } else { - Log.e("mjhseng", "getAppLimitApi---code is -200"); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(Throwable e) { - } - - @Override - public void onComplete() { - } - }); - } - - - private void getDeselectID() { - DeselectIDApi deselectIDApi = NetInterfaceManager.getDeselectIDApi(); - deselectIDApi.getDeselectIDApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - JSONObject jsonObject = JSON.parseObject(responString); - int code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - String ids = data.getString("ids"); - String packages = data.getString("package"); - writeDeselectIDtoSystem(ids, packages); - } else { - Log.e("mjhseng", "getDeselectID---code is -200"); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(Throwable e) { - Log.e("mjsheng", "DeselectIDApi=onError:"); - } - - @Override - public void onComplete() { - - } - }); - } - - - private void autoUpdate(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - JSONObject object = JSON.parseObject(responString); - int code = object.getInteger("code"); - if (code == 200) { - JSONObject jsonObject = object.getJSONObject("data"); - String url = jsonObject.getString("url"); - int version_code = jsonObject.getShort("version_code"); - Log.e("autoUpdate", "version_code: " + AppUtils.getAppVersionCode()); - - if (version_code > AppUtils.getAppVersionCode()) { - Aria.download(this) - .load(url) //读取下载地址 - .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(url) + ".apk", true) - .setExtendField(BuildConfig.APPLICATION_ID) - .create(); //启动下载}} - } - } - } catch (Exception e) { - Log.e("mjhseng", "UpdateApi---woring----" + e.getMessage()); - e.printStackTrace(); - } - } - - private void getDeselectBrowerID() { - DeselectBrowserIDApi deselectBrowserIDApi = NetInterfaceManager.getDeselectBrowserIDApi(); - deselectBrowserIDApi.getDeselectBrowserIDApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("mjhseng", "getDeselectBrowerID---onSubscribe"); - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - Log.e("mjhseng", "浏览器ID管控::" + responString); - JSONObject jsonObject = JSON.parseObject(responString); - int code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - String ids = data.getString("ids"); - writeDeselectBrowserIDtoSystem(ids); - } else { - Log.e("mjhseng", "getDeselectBrowerID---code is -200"); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(Throwable e) { - } - - @Override - public void onComplete() { - } - }); - } - - private void getNetAndLaunchSetting() { - NetAndLaunchApi netAndLaunchApi = NetInterfaceManager.getNetAndLaunchApi(); - netAndLaunchApi.getNetAndLaunchApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("mjhseng", "getNetAndLaunchSetting---onSubscribe"); - - } - - @Override - public void onNext(NetAndLaunchBean netAndLaunchBean) { - switch (netAndLaunchBean.getCode()) { - case 200: - setNetAndlaunch(netAndLaunchBean); - break; - default: -// ToastUtils.showShort(netAndLaunchBean.getMsg()); - } - } - - @Override - public void onError(Throwable e) { - Log.e("mjsheng", "getNetAndLaunchSetting=onError:"); - } - - @Override - public void onComplete() { - Log.e("mjhseng", "getNetAndLaunchSetting---onComplete"); - } - }); - } - - private void getForceDownload() { - ForceDownloadApi forceDownloadApi = NetInterfaceManager.getForceDownloadApi(); - forceDownloadApi.getForceDownloadApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { -// Log.e("getForceDownload", "forceDownloadApi---onSubscribe"); - - } - - @Override - public void onNext(ForceDownloadBean forceDownloadBean) { - switch (forceDownloadBean.getCode()) { - case 200: -// Log.e("getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading()); - BaseApplication.getInstance().checkIsDownloading(); - if (!BaseApplication.getInstance().isDownloading()) { - Aria.download(this).removeAllTask(true); - Type type = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List forceDownloadData = gson.fromJson(gson.toJson(forceDownloadBean.getData()), type); - forceDownload(forceDownloadData); - } else { - Aria.download(this).resumeAllTask(); - } - break; - case -200: - boolean qch_force_app = Settings.System.putString(DiscardActivity.this.getContentResolver(), "qch_force_app", "invalid"); -// Log.e("fht", "qch_force_app:" + qch_force_app); - break; - default: -// Log.e("getForceDownload", forceDownloadBean.getMsg()); - break; - } - } - - @Override - public void onError(Throwable e) { -// Log.e("getForceDownload", "forceDownloadApi=onError:"); - } - - @Override - public void onComplete() { -// Log.e("getForceDownload", "forceDownloadApi---onComplete"); - } - }); - } - - // private void forceDownload(List data) { -// if (data == null || data.size() <= 0) { -// return; -// } -// for(int i=0;i data) { - if (data == null || data.size() <= 0) { - return; - } - getSelfDownload(data); - List list = new ArrayList<>(); - for (int i = 0; i < data.size(); i++) { - ForceDownloadData forceDownloadData = data.get(i); - String app_name = forceDownloadData.getApp_name(); - String app_package = forceDownloadData.getApp_package(); - String app_url = forceDownloadData.getApp_url(); - com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); - jsonObject.put("app_name", app_name); - jsonObject.put("app_package", app_package); - long app_version_code = forceDownloadData.getApp_version_code(); - Log.e("fht ", "packageName=" + app_package + ",URL= " + app_url + ",app_version_code=" + app_version_code); - if (data.get(i).getApp_package().equals("com.jiaoguanyi.appstore")) { - continue;//为自身的跳过下载 - } - if (!list.contains(app_package)) { - list.add(app_package); - } - PackageManager pm = getPackageManager(); - PackageInfo packageInfo = null; - try { - packageInfo = pm.getPackageInfo(app_package, 0); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - Log.e("fht", "forceDownload=" + e.getMessage()); - } - if (packageInfo != null) { - long appVersionCode; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - appVersionCode = packageInfo.getLongVersionCode(); - } else { - appVersionCode = packageInfo.versionCode; - } - if (app_version_code > appVersionCode) { - Log.e("fht ", "download URL " + app_url); -// Aria.download(this) -// .load(app_url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(app_package) + ".apk", true) -// .setExtendField(jsonObject.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, app_url, jsonObject); - } - } else { - Log.e("fht ", "download URL " + app_url); -// if (!SaveListUtils.isDownLoading(app_package)) { -// Aria.download(this) -// .load(app_url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(app_package) + ".apk", true) -// .setExtendField(jsonObject.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, app_url, jsonObject); - -// SaveListUtils.addDownLoadList(app_package); -// } - } - } - SaveListUtils.setList(list); - SaveListUtils.sendForceAPP(this); - } - - private void getSelfDownload(List forceDownloadDataList) { - for (ForceDownloadData forceDownloadData : forceDownloadDataList) { - if ("com.jiaoguanyi.store".equals(forceDownloadData.getApp_package())) { - if (!AppUtils.isAppInstalled("com.jiaoguanyi.store")) { - com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); - jsonObject.put("app_name", forceDownloadData.getApp_name()); - jsonObject.put("app_package", forceDownloadData.getApp_package()); -// Aria.download(this) -// .load(forceDownloadData.getApp_url()) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString("com.jiaoguanyi.store") + ".apk", true) -// .setExtendField(jsonObject.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, forceDownloadData.getApp_url(), jsonObject); - - } - } else { -// Log.e("fht", "未上传应用"); - } - } - } - - private void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) { - Log.e("setNetAndlaunch", netAndLaunchBean.toString()); - String net_ok = ""; - String net_not = ""; - String launch = ""; - String camera_ok = ""; - String camera_not = ""; - String upgrade_ok = ""; - String upgrade_not = ""; - String slide_ok = ""; - String slide_not = ""; - - List data = netAndLaunchBean.getData(); - for (int i = 0; i < data.size(); i++) { - NetAndLaunchData netAndLaunchData = data.get(i); - String app_package = netAndLaunchData.getApp_package(); - int is_auto = netAndLaunchData.getIs_auto(); - int is_network = netAndLaunchData.getIs_network(); - int is_camera = netAndLaunchData.getIs_camera(); - int is_upgrade = netAndLaunchData.getIs_upgrade(); - int is_slide = netAndLaunchData.getIs_slide(); - - if (is_auto == 1) { - launch += app_package + ","; - } - if (is_network == 1) { - net_ok += app_package + ","; - } else { - net_not += app_package + ","; - } - - if (is_camera == 1) { - camera_ok += app_package + ","; - } else { - camera_not += app_package + ","; - } - if (is_upgrade == 1) { - upgrade_ok += app_package + ","; - } else { - upgrade_not += app_package + ","; - } - if (is_slide == 1) { - slide_ok += app_package + ","; - } else { - slide_not += app_package + ","; - } - } - - if (!TextUtils.isEmpty(launch)) { - launch = launch.substring(0, launch.length() - 1); - } - if (!TextUtils.isEmpty(net_ok)) { - net_ok = net_ok.substring(0, net_ok.length() - 1); - } - if (!TextUtils.isEmpty(net_not)) { - net_not = net_not.substring(0, net_not.length() - 1); - } - if (!TextUtils.isEmpty(camera_ok)) { - camera_ok = camera_ok.substring(0, camera_ok.length() - 1); - } - if (!TextUtils.isEmpty(camera_not)) { - camera_not = camera_not.substring(0, camera_not.length() - 1); - } - if (!TextUtils.isEmpty(upgrade_ok)) { - upgrade_ok = upgrade_ok.substring(0, upgrade_ok.length() - 1); - } - if (!TextUtils.isEmpty(upgrade_not)) { - upgrade_not = upgrade_not.substring(0, upgrade_not.length() - 1); - } - if (!TextUtils.isEmpty(slide_ok)) { - slide_ok = slide_ok.substring(0, slide_ok.length() - 1); - } - if (!TextUtils.isEmpty(slide_not)) { - slide_not = slide_not.substring(0, slide_not.length() - 1); - boolean writeSucceed = Settings.System.putString(this.getContentResolver(), "qch_disable_slide", slide_not); - Log.e("setNetAndlaunch", "qch_disable_slide=" + writeSucceed + ":" + slide_not); - } else { - boolean writeSucceed = Settings.System.putString(this.getContentResolver(), "qch_disable_slide", "Invalid"); - Log.e("setNetAndlaunch", "qch_disable_slide ok=" + writeSucceed + ":" + slide_ok); - } - Utils.writeDisableUpdateList(this, upgrade_not.split(","), upgrade_ok.split(",")); - - Log.e("setNetAndlaunch", "launch:" + launch + "-----------net_ok:" + net_ok + "-----------net_not:" + net_not); - boolean qch_app_power_on = Settings.System.putString(DiscardActivity.this.getContentResolver(), "qch_app_power_on", launch); -// Intent netControlIntent = new Intent(CommonDatas.ACTION_HrReceiver_JGY_DIS); -// netControlIntent.putExtra("package_name", net_not); -// sendBroadcast(netControlIntent); -// -// Intent netControlNotIntent = new Intent(CommonDatas.ACTION_HrReceiver_JGY); -// netControlNotIntent.putExtra("package_name", net_ok); -// sendBroadcast(netControlNotIntent); - if (!net_not.equals("")) { - String[] bans = net_not.split(","); -// Settings.System.putString(getContentResolver(), JGYActions.ACTION_HrReceiver_JGY_DIS, net_not); - Log.e("setNetAndlaunch", "ban::" + net_not); - - } - BaseApplication.getInstance().setFinished(true); - if (!net_ok.equals("")) { - String[] nots = net_ok.split(","); -// Settings.System.putString(getContentResolver(), JGYActions.ACTION_HrReceiver_JGY, net_ok); - Log.e("setNetAndlaunch", "not::" + net_ok); - } -// Intent intent2 = new Intent("qch_camera_forbid"); -// intent2.putExtra("camera_package_name", camera_not).setPackage("com.android.settings"); -// sendBroadcast(intent2); -// Intent intent1 = new Intent("qch_camera_open"); -// intent1.putExtra("camera_package_name", camera_ok).setPackage("com.android.settings"); -// sendBroadcast(intent1); - } - - private void writeDeselectBrowserIDtoSystem(String ids) { - if (!TextUtils.isEmpty(ids)) { - boolean deselectBrowserArray = Settings.System.putString(getContentResolver(), "DeselectBrowserArray", ids); - Log.e("SystemSetting", "DeselectBrowserArray---------" + deselectBrowserArray); - - - } else { - Log.e("mjsheng", "writeDeselectBrowserIDtoSystem is null:"); - - } - } - - /** - * @param s1 需要管控的ID - * @param result 应用程序包名 - */ - private void writeDeselectIDtoSystem(String s1, String result) { - if (!TextUtils.isEmpty(s1) && !TextUtils.isEmpty(result)) { - String appstore = "com.jiaoguanyi.appstore"; - String store = "com.jiaoguanyi.store"; - Log.e("writeDeselectIDtoSystem", result); - if (!result.contains(appstore)) { - result = result + "," + appstore; - } - if (!result.contains(store)) { - result = result + "," + store; - } - String olddeselectViewArray = Settings.System.getString(this.getContentResolver(), "qch_app_forbid_id"); - Log.e("SystemSetting", "olddeselectViewArray---------" + olddeselectViewArray); - Settings.System.putString(this.getContentResolver(), "qch_app_forbid_id", result); - Settings.System.putString(this.getContentResolver(), "DeselectViewArray", s1); - Log.e("qch_app_forbid_id", "qch_app_forbid_id---------" + result); - Log.e("SystemSetting", "deselectViewArray---------" + s1); - } else { - Log.e("mjsheng", "writeDeselectIDtoSystem is null:"); - Settings.System.putString(this.getContentResolver(), "DeselectViewArray", "Invalid"); - } - } - - private void getSystemSetting() { - final SystemSettingApi systemSettingApi = NetInterfaceManager.getSystemSettingApi(); - systemSettingApi.getSystemSettingApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - // Log.e("mjsheng", "systemSettingBean::" + systemSettingBean); - String responString = responseBody.string(); - Log.e("getSystemSetting", "系统管控::" + responString); - JSONObject jsonObject = JSON.parseObject(responString); - int code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - SettingSysData(data); - } else { - Log.e("getSystemSetting", "getSystemSetting---code is -200"); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(Throwable e) { - } - - @Override - public void onComplete() { - } - }); - } - - private void SettingSysData(JSONObject data) { - SPUtils.put(DiscardActivity.this, "first_connect", 1); -// SysSettingUtils.setSystemSetting(DiscardActivity.this, data.toString()); - -//// try { -// int setting_call = changeNum(data.optInt("setting_call")); -// boolean qch_call_forbid = Settings.System.putInt(getContentResolver(), "qch_call_forbid", setting_call); -// Log.e("SystemSetting", "qch_call_forbid---------" + qch_call_forbid); -// -// int setting_phone = changeNum(data.optInt("setting_phone")); -// boolean qch_white_list_on = Settings.System.putInt(getContentResolver(), "qch_white_list_on", setting_phone); -// Log.e("SystemSetting", "qch_white_list_on---------" + qch_white_list_on); -// -// String setting_phones = data.optString("setting_phones"); -// boolean qch_white_list_Array = Settings.System.putString(getContentResolver(), "qch_white_list_Array", setting_phones); -// // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); -// Log.e("SystemSetting", "qch_white_list_Array---------" + qch_white_list_Array + "---" + setting_phones); -// -// int setting_memory = changeNum(data.optInt("setting_memory")); -// boolean qch_sdcard_forbid_on = Settings.System.putInt(getContentResolver(), "qch_sdcard_forbid_on", setting_memory); -// Log.e("SystemSetting", "qch_sdcard_forbid_on---------" + qch_sdcard_forbid_on); -// -// -// //USB数据功能管控 -// //仅充电:usb_charge -// //MTP模式:usb_mtp -// //Midi模式:usb_midi -// String setting_usb = data.optString("setting_usb"); -// if (!BuildConfig.DEBUG) { -// boolean qch_usb_choose = Settings.System.putString(getContentResolver(), "qch_usb_choose", setting_usb); -// Log.e("SystemSetting", "qch_usb_choose---------" + qch_usb_choose); -// String usbStatus = ""; -// switch (setting_usb) { -// case "usb_charge": -// usbStatus = "qch_action_usb_usb_charge"; -// break; -// case "usb_mtp": -// usbStatus = "qch_action_usb_usb_mtp"; -// break; -// case "usb_midi": -// usbStatus = "qch_action_usb_usb_midi"; -// break; -// -// } -// Intent usbIntent = new Intent(usbStatus).setPackage("com.android.settings"); -// sendBroadcast(usbIntent); -// } -// -// -// //otg开关 -//// int setting_otg = changeNum(data.optInt("setting_otg")); -//// Log.e("SystemSetting", "setting_otg---------" + setting_otg); -//// String otgStatus = ""; -//// switch (setting_otg) { -//// case 0: -//// otgStatus = "qch_otg_open"; -//// break; -//// case 1: -//// otgStatus = "qch_otg_forbid"; -//// break; -//// } -//// Intent otgIntent = new Intent(otgStatus); -//// sendBroadcast(otgIntent); -// -// //蓝牙开关 -// int setting_bht = changeNum(data.optInt("setting_bht"));//总开关 -// int setting_bhtvideo = changeNum(data.optInt("setting_bhtvideo"));//蓝牙音频开关 -// int setting_bluetooth = changeNum(data.optInt("setting_bluetooth"));//蓝牙传输开关 -// -// boolean qch_bht_forbid_on = Settings.System.putInt(getContentResolver(), "qch_bht_forbid_on", setting_bht);//写入系统数据库 -// Log.e("SystemSetting", "qch_bht_forbid_on:" + qch_bht_forbid_on); -// if (qch_bht_forbid_on) {//成功 -// if (null == mBluetoothAdapter) { -// mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//获取默认蓝牙适配器 -// } -// if (setting_bht == 0) {//蓝牙总开关开启 -// String setting_context = data.optString("setting_context");// -// if (setting_bhtvideo == 0) { -// if (null != setting_context && !setting_context.equals("") && !setting_context.equals(" ") && !setting_context.equals("null")) { -// Log.e("SystemSetting", "setting_context:" + setting_context); -// Settings.System.putString(getContentResolver(), "qch_bhtvideo_forbid_on", setting_context); -// } else { -// Settings.System.putString(getContentResolver(), "qch_bhtvideo_forbid_on", "Empty"); -// } -// } else if (setting_bhtvideo == 1) { -// Settings.System.putString(getContentResolver(), "qch_bhtvideo_forbid_on", "Empty"); -// } -// Settings.System.putInt(getContentResolver(), "qch_bt_forbid_on", setting_bluetooth); -// } else { -// mBluetoothAdapter.disable();//设置关闭时关闭蓝牙 -// } -// -// } -// -// //热点 -//// ConnectivityManager mConnectivityManager =(ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); -//// mConnectivityManager.stopTethering(ConnectivityManager.TETHERING_WIFI); -//// try { -//// Method method = mConnectivityManager.getClass().getMethod("stopTethering", Integer.TYPE); -//// method.invoke(mConnectivityManager, 0); -//// } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { -//// e.printStackTrace(); -//// } -// -//// ConnectivityManager connManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); -//// -//// Field iConnMgrField = null; -//// try { -//// iConnMgrField = connManager.getClass().getDeclaredField("mService"); -//// iConnMgrField.setAccessible(true); -//// Object iConnMgr = iConnMgrField.get(connManager); -//// Class iConnMgrClass = Class.forName(iConnMgr.getClass().getName()); -//// -////// if(isEnable){ -////// Method startTethering = iConnMgrClass.getMethod("startTethering", int.class, ResultReceiver.class, boolean.class,String.class); -////// startTethering.invoke(iConnMgr, 0, null, true,context.getPackageName()); -////// }else{ -//// Method startTethering = iConnMgrClass.getMethod("stopTethering", int.class, String.class); -//// startTethering.invoke(iConnMgr, 0, getPackageName()); -////// } -//// -//// } catch (NoSuchFieldException e) { -//// e.printStackTrace(); -//// } catch (NoSuchMethodException e) { -//// e.printStackTrace(); -//// } catch (IllegalAccessException e) { -//// e.printStackTrace(); -//// } catch (InvocationTargetException e) { -//// e.printStackTrace(); -//// } catch (ClassNotFoundException e) { -//// e.printStackTrace(); -//// } -// -// int setting_hotspot = changeNum(data.optInt("setting_hotspot")); -// if (setting_hotspot == 1) { -// Intent intent = new Intent(); -// intent.setAction("qch_hotspot_close"); -// intent.setPackage("com.android.settings"); -// sendStickyBroadcast(intent); -// } -// boolean qch_hotspot_forbid_on = Settings.System.putInt(getContentResolver(), "qch_hotspot_forbid_on", setting_hotspot);//写入系统数据库 -// Log.e("SystemSetting", "qch_hotspot_forbid_on---------" + setting_hotspot); -// Log.e("SystemSetting", "qch_hotspot_forbid_on---------" + qch_hotspot_forbid_on); -// -// //系统导航条显示开关 -// int setting_navigation = changeNum(data.optInt("setting_navigation")); -// boolean qch_hide_navigationBar = Settings.System.putInt(getContentResolver(), "qch_hide_NavigationBar", setting_navigation); -// Log.e("SystemSetting", "qch_hide_navigationBar---------" + qch_hide_navigationBar); -// -// String navigationStatus = ""; -// switch (setting_navigation) { -// case 0: -// navigationStatus = "qch_show_NavigationBar"; -// break; -// case 1: -// navigationStatus = "qch_hide_NavigationBar"; -// break; -// -// } -// Intent navIntent = new Intent(navigationStatus).setPackage("com.android.systemui"); -// sendBroadcast(navIntent); -// -// -// //状态栏显示开关 -// int setting_statusbar = changeNum(data.optInt("setting_statusbar")); -// int oldNum = Settings.System.getInt(MainActivity.this.getContentResolver(), "qch_hide_statusBar", 0); -// if (oldNum != setting_statusbar) { -// boolean qch_hide_statusBar = Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_hide_statusBar", setting_statusbar); -// Log.e("SystemSetting", "qch_hide_statusBar---------" + qch_hide_statusBar); -// String statusbarStatus = ""; -// switch (setting_statusbar) { -// case 0: -// statusbarStatus = "qch_show_statusBar"; -// break; -// case 1: -// statusbarStatus = "qch_hide_statusBar"; -// break; -// } -// Intent statusIntent = new Intent(statusbarStatus).setPackage("com.android.systemui"); -// MainActivity.this.sendBroadcast(statusIntent); -// } -// -// //摄像头开关 -// int setting_camera = changeNum(data.optInt("setting_camera")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_camera", setting_camera); -//// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.mediatek.camera"); -// Log.e("SystemSetting", "setting_camera---------" + setting_camera); -// String cameraStatus = ""; -// switch (setting_camera) { -// case 0: -// cameraStatus = "qch_camera_open"; -// break; -// case 1: -// cameraStatus = "qch_camera_forbid"; -// break; -// } -// Intent cameraIntent = new Intent(cameraStatus).setPackage("com.android.settings"); -// sendBroadcast(cameraIntent); -// -// //added:2019.12.6 -// //设置5个app的开关 -// //时钟 -// int deskclock = changeNum(data.optInt("setting_clock")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_deskclock", deskclock); -// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.android.deskclock"); -// Log.e("SystemSetting", "qch_app_deskclock" + deskclock); -// //录音机 -// int soundrecorder = changeNum(data.optInt("setting_recording")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_soundrecorder", soundrecorder); -// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.android.soundrecorder"); -// Log.e("SystemSetting", "qch_app_soundrecorder" + soundrecorder); -// //音乐 -// int music = changeNum(data.optInt("setting_music")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_music", music); -// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.android.music"); -// Log.e("SystemSetting", "qch_app_music" + music); -// //图库 -// int gallery = changeNum(data.optInt("setting_picture")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_gallery", gallery); -// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.android.gallery3d"); -// Log.e("SystemSetting", "qch_app_gallery" + gallery); -// //壁纸 -// int wallpaper = changeNum(data.optInt("setting_wallpaper")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_wallpaper", wallpaper); -// Log.e("SystemSetting", "qch_app_wallpaper" + wallpaper); -// //文件管理器 -// int filemanager = changeNum(data.optInt("setting_file")); -// Settings.System.putInt(MainActivity.this.getContentResolver(), "qch_app_filemanager", filemanager); -// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { -// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.mediatek.filemanager"); -// } else { -// ApkUtils.hideSystemSettingAPP(MainActivity.this, "com.android.documentsui"); -// } -// Log.e("SystemSetting", "qch_app_filemanager" + filemanager); -// -//// } catch (Exception e) { -//// e.printStackTrace(); -//// Log.e("mjhseng", "SettingSysData---2error::" + e.getMessage()); -//// } - } -} diff --git a/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java b/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java index 8420543..b133b43 100644 --- a/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java +++ b/app/src/main/java/com/mjsheng/myappstore/activity/MainActivity.java @@ -196,6 +196,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { public void setLockedState(boolean loocked) { if (loocked) { iv_locked.setVisibility(View.VISIBLE); + iv_locked.setImageDrawable(getDrawable(R.drawable.locked)); //上传APP信息 ApkUtils.getAppInfo(this); if (netWorkIsRunning || MainService.netWorkIsRunning) { @@ -211,7 +212,8 @@ public class MainActivity extends BaseActivity implements MainContact.MainView { mPresenter.getSystemSettingbegin(); netWorkIsRunning = true; } else { - iv_locked.setVisibility(View.GONE); + iv_locked.setVisibility(View.VISIBLE); + iv_locked.setImageDrawable(getDrawable(R.drawable.unlock)); netWorkIsRunning = false; SysSettingUtils.setEnableSetting(this); } diff --git a/app/src/main/java/com/mjsheng/myappstore/activity/MainPresenter.java b/app/src/main/java/com/mjsheng/myappstore/activity/MainPresenter.java index d350329..19bf18c 100644 --- a/app/src/main/java/com/mjsheng/myappstore/activity/MainPresenter.java +++ b/app/src/main/java/com/mjsheng/myappstore/activity/MainPresenter.java @@ -105,7 +105,7 @@ public class MainPresenter implements MainContact.Presenter { @Override public void onNext(@NonNull BaseResponse studentsInfoBaseResponse) { - Log.e("getStudesInfo", "onNext: "); + Log.e("getStudesInfo", "onNext: " + studentsInfoBaseResponse.data); if (studentsInfoBaseResponse.code == OK) { String sno = studentsInfoBaseResponse.data.getSno(); String realname = studentsInfoBaseResponse.data.getRealname(); @@ -1458,7 +1458,7 @@ public class MainPresenter implements MainContact.Presenter { @Override public void onNext(@NonNull BaseResponse logoImgBaseResponse) { - Log.e("setLogoImg", "onNext: "); + Log.e("setLogoImg", "onNext: " + logoImgBaseResponse.data); if (logoImgBaseResponse.code == OK) { LogoImg logoImg = logoImgBaseResponse.data; String file_url = logoImg.getFile_url(); @@ -1470,7 +1470,8 @@ public class MainPresenter implements MainContact.Presenter { JGYUtils.getInstance().checkBootFile(file_url, file_md5); } } else { - Log.e("setLogoImg", "onNext: "); + Log.e("setLogoImg", "onNext: delete"); + JGYUtils.getInstance().removeBootanimation(); } } diff --git a/app/src/main/java/com/mjsheng/myappstore/bean/LogoImg.java b/app/src/main/java/com/mjsheng/myappstore/bean/LogoImg.java index 9f820e8..ca157f7 100644 --- a/app/src/main/java/com/mjsheng/myappstore/bean/LogoImg.java +++ b/app/src/main/java/com/mjsheng/myappstore/bean/LogoImg.java @@ -1,5 +1,7 @@ package com.mjsheng.myappstore.bean; +import androidx.annotation.NonNull; + import java.io.Serializable; public class LogoImg implements Serializable { @@ -31,4 +33,10 @@ public class LogoImg implements Serializable { public void setBatch(String batch) { this.batch = batch; } + + @NonNull + @Override + public String toString() { + return "file_url:" + file_url + "," + "file_md5:" + file_md5; + } } diff --git a/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java b/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java index 844aa68..bcb9ba5 100644 --- a/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java +++ b/app/src/main/java/com/mjsheng/myappstore/network/HTTPInterface.java @@ -417,8 +417,10 @@ public class HTTPInterface { synchronized public static void getAppinsideWeb(Context context, GetAppinsideWebCallback callback) { if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.MTKPlatform) { + Log.e(TAG, "getAppinsideWeb: "+ "setAppinsideWeb"); setAppinsideWeb(callback); - }else { + } else { + Log.e(TAG, "getAppinsideWeb: "+ "setNewAppinsideWeb"); setNewAppinsideWeb(callback); } } @@ -951,9 +953,10 @@ public class HTTPInterface { String msg = jsonObject.getString("msg"); String data = jsonObject.getString("data"); ApkUtils.showAllAPP(context); + ApkUtils.addShortcut(context); Logger.e("setHideDesktopIcon", "data: " + data); if (code == 200) { - if (data != null && !"".equals(data)) { + if (!TextUtils.isEmpty(data)) { List newList = Arrays.asList(data.split(","));//新的list PackageManager pm = context.getPackageManager(); for (String pack : newList) { diff --git a/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java b/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java index ad5f22f..600cc6e 100644 --- a/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java +++ b/app/src/main/java/com/mjsheng/myappstore/receiver/BootReceiver.java @@ -11,6 +11,7 @@ import com.mjsheng.myappstore.server.GuardService; import com.mjsheng.myappstore.server.LogcatService; import com.mjsheng.myappstore.server.MainService; import com.mjsheng.myappstore.server.StepService; +import com.mjsheng.myappstore.utils.BootManager; import com.mjsheng.myappstore.utils.JGYUtils; import com.mjsheng.myappstore.utils.SPUtils; @@ -25,13 +26,8 @@ public class BootReceiver extends BroadcastReceiver { default: break; case Intent.ACTION_BOOT_COMPLETED: - String packageList = Settings.System.getString(context.getContentResolver(), "qch_launcher_icon_app"); - if (TextUtils.isEmpty(packageList)) { - Settings.System.putString(context.getContentResolver(), "qch_launcher_icon_app", ""); - } startService(context); - SPUtils.put(context, JGYUtils.JGY_APPINSIDE_FIRST_WRITE, 0); - JGYUtils.getInstance().onBootSendNetwork(); + new BootManager(context).start(); break; case BOOT_COMPLETED: case Intent.ACTION_BATTERY_CHANGED: diff --git a/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java b/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java index a3f56ea..56a5e36 100644 --- a/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java +++ b/app/src/main/java/com/mjsheng/myappstore/receiver/MyJPushReceiver.java @@ -377,244 +377,6 @@ public class MyJPushReceiver extends BroadcastReceiver { context.sendBroadcast(intent); } - private BluetoothAdapter mBluetoothAdapter; - - private void SettingSysData(String extras) { -// SysSettingUtils.setSystemSetting(mContext, extras); -// try { -// JSONObject data = new JSONObject(extras); -// int setting_call = changeNum(data.optInt("setting_call")); -// boolean qch_call_forbid = Settings.System.putInt(mContext.getContentResolver(), "qch_call_forbid", setting_call); -// Log.e("SystemSetting", "qch_call_forbid---------" + setting_call); -// Log.e("SystemSetting", "qch_call_forbid---------" + qch_call_forbid); -// -// int setting_phone = changeNum(data.optInt("setting_phone")); -// boolean qch_white_list_on = Settings.System.putInt(mContext.getContentResolver(), "qch_white_list_on", setting_phone); -// Log.e("SystemSetting", "qch_call_forbid---------" + setting_phone); -// Log.e("SystemSetting", "qch_white_list_on---------" + qch_white_list_on); -// -// String setting_phones = data.optString("setting_phones"); -// boolean qch_white_list_Array = Settings.System.putString(mContext.getContentResolver(), "qch_white_list_Array", setting_phones); -// Log.e("SystemSetting", "qch_call_forbid---------" + setting_phones); -// // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); -// Log.e("SystemSetting", "qch_white_list_Array---------" + qch_white_list_Array + "---" + setting_phones); -// -// int setting_memory = changeNum(data.optInt("setting_memory")); -// boolean qch_sdcard_forbid_on = Settings.System.putInt(mContext.getContentResolver(), "qch_sdcard_forbid_on", setting_memory); -// Log.e("SystemSetting", "qch_sdcard_forbid_on---------" + setting_memory); -// Log.e("SystemSetting", "qch_sdcard_forbid_on---------" + qch_sdcard_forbid_on); -// -// -// //USB数据功能管控 -// //仅充电:usb_charge -// //MTP模式:usb_mtp -// //Midi模式:usb_midi -// String setting_usb = data.optString("setting_usb"); -// if (!BuildConfig.DEBUG) { -// boolean qch_usb_choose = Settings.System.putString(mContext.getContentResolver(), "qch_usb_choose", setting_usb); -// Log.e("SystemSetting", "qch_usb_choose---------" + setting_usb); -// Log.e("SystemSetting", "qch_usb_choose---------" + qch_usb_choose); -// String usbStatus = ""; -// switch (setting_usb) { -// case "usb_charge": -// usbStatus = "qch_action_usb_usb_charge"; -// break; -// case "usb_mtp": -// usbStatus = "qch_action_usb_usb_mtp"; -// break; -// case "usb_midi": -// usbStatus = "qch_action_usb_usb_midi"; -// break; -// } -// Intent usbIntent = new Intent(usbStatus).setPackage("com.android.settings"); -// mContext.sendBroadcast(usbIntent); -// } -// -// //otg开关 -//// int setting_otg = changeNum(data.optInt("setting_otg")); -//// Log.e("SystemSetting", "setting_otg---------" + setting_otg); -//// String otgStatus = ""; -//// switch (setting_otg) { -//// case 0: -//// otgStatus = "qch_otg_open"; -//// break; -//// case 1: -//// otgStatus = "qch_otg_forbid"; -//// break; -//// } -//// Intent otgIntent = new Intent(otgStatus); -//// mContext.sendBroadcast(otgIntent); -// -// //蓝牙开关 -// int setting_bht = changeNum(data.optInt("setting_bht"));//总开关 -// int setting_bhtvideo = changeNum(data.optInt("setting_bhtvideo"));//蓝牙音频开关 -// int setting_bluetooth = changeNum(data.optInt("setting_bluetooth"));//蓝牙传输开关 -// -// boolean qch_bht_forbid_on = Settings.System.putInt(this.mContext.getContentResolver(), "qch_bht_forbid_on", setting_bht);//写入系统数据库 -// Log.e("SystemSetting", "qch_bht_forbid_on:" + qch_bht_forbid_on); -// if (qch_bht_forbid_on) {//成功 -// if (null == mBluetoothAdapter) { -// mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//获取默认蓝牙适配器 -// } -// if (setting_bht == 0) {//蓝牙总开关开启 -// String setting_context = data.optString("setting_context");// -// if (setting_bhtvideo == 0) { -// if (null != setting_context && !setting_context.equals("") && !setting_context.equals(" ") && !setting_context.equals("null")) { -// Log.e("SystemSetting", "setting_context:" + setting_context); -// Settings.System.putString(this.mContext.getContentResolver(), "qch_bhtvideo_forbid_on", setting_context); -// } else { -// Settings.System.putString(this.mContext.getContentResolver(), "qch_bhtvideo_forbid_on", "Empty"); -// } -// } else if (setting_bhtvideo == 1) { -// Settings.System.putString(this.mContext.getContentResolver(), "qch_bhtvideo_forbid_on", "Empty"); -// } -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_bt_forbid_on", setting_bluetooth); -// } else { -// mBluetoothAdapter.disable();//设置关闭时关闭蓝牙 -// } -// -// } -// -// int setting_hotspot = changeNum(data.optInt("setting_hotspot"));//热点 -// if (setting_hotspot == 1) { -// Intent intent = new Intent(); -// intent.setAction("qch_hotspot_close"); -// intent.setPackage("com.android.settings"); -// this.mContext.sendStickyBroadcast(intent); -// } -// boolean qch_hotspot_forbid_on = Settings.System.putInt(this.mContext.getContentResolver(), "qch_hotspot_forbid_on", setting_hotspot);//写入系统数据库 -// Log.e("SystemSetting", "qch_hotspot_forbid_on---------" + setting_hotspot); -// Log.e("SystemSetting", "qch_hotspot_forbid_on---------" + qch_hotspot_forbid_on); -// -// -// //系统导航条显示开关 -// int setting_navigation = changeNum(data.optInt("setting_navigation")); -// boolean qch_hide_navigationBar = Settings.System.putInt(mContext.getContentResolver(), "qch_hide_NavigationBar", setting_navigation); -// Log.e("SystemSetting", "qch_hide_navigationBar---------" + setting_navigation); -// Log.e("SystemSetting", "qch_hide_navigationBar---------" + qch_hide_navigationBar); -// -// String navigationStatus = ""; -// switch (setting_navigation) { -// case 0: -// navigationStatus = "qch_show_NavigationBar"; -// break; -// case 1: -// navigationStatus = "qch_hide_NavigationBar"; -// break; -// -// } -// Intent navIntent = new Intent(navigationStatus).setPackage("com.android.systemui"); -// mContext.sendBroadcast(navIntent); -// -// -// //状态栏显示开关 -// int setting_statusbar = changeNum(data.optInt("setting_statusbar")); -// int oldNum = Settings.System.getInt(mContext.getContentResolver(), "qch_hide_statusBar", 0); -// if (oldNum != setting_statusbar) { -// boolean qch_hide_statusBar = Settings.System.putInt(mContext.getContentResolver(), "qch_hide_statusBar", setting_statusbar); -// Log.e("SystemSetting", "qch_hide_statusBar---------" + qch_hide_statusBar); -// String statusbarStatus = ""; -// switch (setting_statusbar) { -// case 0: -// statusbarStatus = "qch_show_statusBar"; -// break; -// case 1: -// statusbarStatus = "qch_hide_statusBar"; -// break; -// } -// Intent statusIntent = new Intent(statusbarStatus).setPackage("com.android.systemui"); -// mContext.sendBroadcast(statusIntent); -// } -// -// //摄像头开关 -// int setting_camera = changeNum(data.optInt("setting_camera")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_camera", setting_camera); -//// ApkUtils.hideSystemSettingAPP(this.mContext, "com.mediatek.camera"); -// Log.e("SystemSetting", "setting_camera---------" + setting_camera); -// String cameraStatus = ""; -// switch (setting_camera) { -// case 0: -// cameraStatus = "qch_camera_open"; -// break; -// case 1: -// cameraStatus = "qch_camera_forbid"; -// break; -// } -// Intent cameraIntent = new Intent(cameraStatus).setPackage("com.android.settings"); -// mContext.sendBroadcast(cameraIntent); -// -// //影音管控开关 -// int setting_tfmedia = changeNum(data.optInt("setting_tfmedia")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_tfmedia_forbid", setting_tfmedia); -// Log.e("SystemSetting", "qch_tfmedia_forbid---------" + setting_tfmedia); -// -// if (setting_tfmedia == 1) { -// JSONArray jSONArray = null; -// try { -// jSONArray = data.getJSONArray("setting_tfmedia_format"); -// -// int i = 0; -// StringBuffer stringBuffer = new StringBuffer(); -// while (!jSONArray.isNull(i)) { -// stringBuffer.append(jSONArray.getString(i)); -// stringBuffer.append(","); -// i++; -// } -// stringBuffer.deleteCharAt(stringBuffer.length() - 1); -// String s = Settings.System.getString(this.mContext.getContentResolver(), "qch_tfmedia_filetypes");//影音管控 -// Log.e("SystemSetting", "qch_tfmedia_filetypes old" + s); -// boolean b = Settings.System.putString(this.mContext.getContentResolver(), "qch_tfmedia_filetypes", stringBuffer.toString());//影音管控 -// Log.e("SystemSetting", "qch_tfmedia_filetypes---------" + b + ":" + stringBuffer.toString()); -// -// } catch (JSONException e) { -// Log.e("SystemSetting", "qch_tfmedia_filetypes---------" + e.getMessage()); -// -// } -// } else { -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_tfmedia_forbid", 0); -// } -// //added:2019.12.6 -// //设置5个app的开关 -// //时钟 -// int deskclock = changeNum(data.optInt("setting_clock")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_deskclock", deskclock); -// ApkUtils.hideSystemSettingAPP(this.mContext, "com.android.deskclock"); -// Log.e("SystemSetting", "qch_app_deskclock" + deskclock); -// //录音机 -// int soundrecorder = changeNum(data.optInt("setting_recording")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_soundrecorder", soundrecorder); -// ApkUtils.hideSystemSettingAPP(this.mContext, "com.android.soundrecorder"); -// Log.e("SystemSetting", "qch_app_soundrecorder" + soundrecorder); -// //音乐 -// int music = changeNum(data.optInt("setting_music")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_music", music); -// ApkUtils.hideSystemSettingAPP(this.mContext, "com.android.music"); -// Log.e("SystemSetting", "qch_app_music" + music); -// //图库 -// int gallery = changeNum(data.optInt("setting_picture")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_gallery", gallery); -// ApkUtils.hideSystemSettingAPP(this.mContext, "com.android.gallery3d"); -// Log.e("SystemSetting", "qch_app_gallery" + gallery); -// //壁纸 -// int wallpaper = changeNum(data.optInt("setting_wallpaper")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_wallpaper", wallpaper); -// Log.e("SystemSetting", "qch_app_wallpaper" + wallpaper); -// //文件管理器 -// int filemanager = changeNum(data.optInt("setting_file")); -// Settings.System.putInt(this.mContext.getContentResolver(), "qch_app_filemanager", filemanager); -// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { -// ApkUtils.hideSystemSettingAPP(this.mContext, "com.mediatek.filemanager"); -// } else { -// ApkUtils.hideSystemSettingAPP(this.mContext, "com.android.documentsui"); -// } -// Log.e("SystemSetting", "qch_app_filemanager" + filemanager); -// -// } catch (Exception e) { -// e.printStackTrace(); -// Log.e("mjhseng", "SettingSysData---3error::" + e.getMessage()); -// } - } - private void doDownloadAndInstall(String jsonString) { File file = new File(PathUtils.getExternalDownloadsPath() + "/jgy/"); if (!file.exists()) { @@ -999,15 +761,19 @@ public class MyJPushReceiver extends BroadcastReceiver { private void settingPowerOn(String s) { if (TextUtils.isEmpty(s)) { - Log.e(TAG, "settingNetControlAndPowerOn extras is null"); + Log.e(TAG, "settingPowerOn extras is null"); return; } JSONObject jSONObject = JSON.parseObject(s); String ban = jSONObject.getString("ban"); String not = jSONObject.getString("not"); - Log.e(TAG, "settingPowerOn" + not); - Settings.System.putString(this.mContext.getContentResolver(), "qch_app_power_on", not); - Log.e("SystemSetting", "qch_app_power_on---------" + not); + Log.e(TAG, "settingPowerOn: qch_app_power_on = " + not); + if (TextUtils.isEmpty(not)){ + //当 qch_app_power_on 的值为空时,会造成系统所有应用断网 + Settings.System.putString(mContext.getContentResolver(), "qch_app_power_on", "Invalid"); + }else { + Settings.System.putString(mContext.getContentResolver(), "qch_app_power_on", not); + } } @@ -1025,6 +791,12 @@ public class MyJPushReceiver extends BroadcastReceiver { //设置主页和标签 // HTTPInterface.setHomepagtag(mContext);//设置主页和标签 HTTPInterface.getHomePageBookmarks(mContext, null); + try { + new CacheUtils().cleanApplicationUserData(mContext, "com.android.browser"); + } catch (Exception e) { + e.printStackTrace(); + Log.e(TAG, "setHomepagtag: " + e.getMessage()); + } // if (TextUtils.isEmpty(s)) { // Log.e(TAG, "setHomepagtag extras is null"); // @@ -1050,7 +822,8 @@ public class MyJPushReceiver extends BroadcastReceiver { public void ononComplete() { Log.e(TAG, "ononComplete: setAPPinsideWebsite"); } - });//app内部网页管控 + }); + //app内部网页管控 // if (TextUtils.isEmpty(s)) { // Log.e(TAG, "setAPPinsideWebsite extras is null"); diff --git a/app/src/main/java/com/mjsheng/myappstore/server/DiscardServer.java b/app/src/main/java/com/mjsheng/myappstore/server/DiscardServer.java deleted file mode 100644 index 910bbc9..0000000 --- a/app/src/main/java/com/mjsheng/myappstore/server/DiscardServer.java +++ /dev/null @@ -1,1488 +0,0 @@ -package com.mjsheng.myappstore.server; - -import android.annotation.SuppressLint; -import android.app.Service; -import android.bluetooth.BluetoothAdapter; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.ContextWrapper; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.graphics.Color; -import android.graphics.PixelFormat; -import android.os.BatteryManager; -import android.os.Build; -import android.os.Handler; -import android.os.IBinder; -import android.os.Message; -import android.provider.Settings; -import android.text.TextUtils; -import android.util.DisplayMetrics; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.WindowManager; -import android.widget.Button; -import android.widget.TextView; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.arialyy.aria.core.Aria; -import com.blankj.utilcode.util.PathUtils; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.mjsheng.myappstore.utils.JGYUtils; -import com.lzy.okgo.OkGo; -import com.lzy.okgo.callback.StringCallback; -import com.mjsheng.myappstore.BuildConfig; -import com.mjsheng.myappstore.base.BaseApplication; -import com.mjsheng.myappstore.R; -import com.mjsheng.myappstore.bean.Batch; -import com.mjsheng.myappstore.bean.ForceDownloadBean; -import com.mjsheng.myappstore.bean.ForceDownloadData; -import com.mjsheng.myappstore.bean.LzyResponse; -import com.mjsheng.myappstore.bean.NetAndLaunchBean; -import com.mjsheng.myappstore.bean.NetAndLaunchData; -import com.mjsheng.myappstore.bean.StudentsInfo; -import com.mjsheng.myappstore.comm.CommonDatas; -import com.mjsheng.myappstore.jpush.TagAliasOperatorHelper; -import com.mjsheng.myappstore.manager.NetInterfaceManager; -import com.mjsheng.myappstore.network.HTTPInterface; -import com.mjsheng.myappstore.network.api.AppLimitApi; -import com.mjsheng.myappstore.network.api.DeselectBrowserIDApi; -import com.mjsheng.myappstore.network.api.ForceDownloadApi; -import com.mjsheng.myappstore.network.api.NetAndLaunchApi; -import com.mjsheng.myappstore.network.api.SystemSettingApi; -import com.mjsheng.myappstore.network.api.newapi.GetBatchApi; -import com.mjsheng.myappstore.network.URLAddress; -import com.mjsheng.myappstore.utils.ForegroundAppUtil; -import com.mjsheng.myappstore.utils.MySQLData; -import com.mjsheng.myappstore.utils.SPUtils; -import com.mjsheng.myappstore.utils.SaveListUtils; -import com.mjsheng.myappstore.utils.TimeUtils; -import com.mjsheng.myappstore.utils.Utils; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import cn.jpush.android.api.JPushInterface; -import io.reactivex.Observer; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.annotations.Nullable; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import okhttp3.Call; -import okhttp3.Response; -import okhttp3.ResponseBody; -import rx.Observable; -import rx.functions.Action1; - -import static com.mjsheng.myappstore.jpush.TagAliasOperatorHelper.ACTION_SET; -import static com.mjsheng.myappstore.jpush.TagAliasOperatorHelper.sequence; - -/** - * 作者 mjsheng - * 日期 2019/3/23 16:26 - * 邮箱 501802639@qq.com - * 来自: - */ - -public class DiscardServer extends Service { - private String TAG = DiscardServer.class.getSimpleName(); - - @Nullable - @Override - public IBinder onBind(Intent intent) { - return null; - } - - @Override - public void onCreate() { - Log.e(TAG, "onCreate"); - super.onCreate(); - registReceiver(); - registerTimeReceiver(); - File file = new File(PathUtils.getExternalDownloadsPath() + "/jgy/"); - if (!file.exists()) { - file.mkdirs(); - } -// android.os.Debug.waitForDebugger(); - } - - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { -// String boot = intent.getStringExtra("boot"); -// if (null != boot&&boot.equals("BOOT_COMPLETED")) { -// String result = Settings.System.getString(getContentResolver(), "qch_app_forbid"); -// addShortcut(this, result);//开机之后添加图标到桌面 -// } - - getScreenLockState(); - getAppLimitApi();//获取可以写入的app包名 - HTTPInterface.getNetAndLaunchSetting(this); - int first = (int) SPUtils.get(this, "first_connect", 0); - if (first == 0) { -// SysSettingUtils.setDisableSetting(this);//设置系统管控 - } - timerImitate(); -// getNetworkState(); - Log.e(TAG, "onStartCommand"); -// return super.onStartCommand(intent, flags, startId); -// mHandler.postDelayed(mRunnable, 10 * 1000); - return START_STICKY; - } - - private void getInfo(Context context) { - OkGo.post(URLAddress.GET_STUDENTS_INFO) - .params("sn", Utils.getSerial()) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - try { - LzyResponse lzyResponse = (LzyResponse) JSON.parseObject(s, LzyResponse.class); - StudentsInfo info = lzyResponse.data; - if (lzyResponse.code == 200) { - SPUtils.put(context, "batch", info.getBatch()); - SPUtils.put(context, "classes", info.getClasses()); - SPUtils.put(context, "sno", info.getSno()); - SPUtils.put(context, "realname", info.getRealname()); - } - } catch (Exception e) { - Log.e("getInfo", "onSuccess: Exception: " + e.getMessage()); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("getInfo", "onError: " + e.getMessage()); - } - - });// 请求方式和请求url - } - - private void getScreenLockState() { - OkGo.get(URLAddress.GET_LOCK_SCREEN_STATE) - .params("sn", Utils.getSerial()) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - try { - JSONObject jsonObject = JSONObject.parseObject(s); - int code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = JSONObject.parseObject(jsonObject.getString("data")); - int lockScreen = data.getInteger("is_screen_lock"); - String name = data.getString("name"); - if (lockScreen == 1) { - if (!timelocked) { - showFloatingWindow(name); - } - screenlocked = true; - } else { - if (!timelocked) { - hideFloatingWindow(); - } - screenlocked = false; - } - } else { - if (!timelocked) { - hideFloatingWindow(); - } - screenlocked = false; - } - } catch (Exception e) { - Log.e("getScreenLockState", "onSuccess: Exception: " + e.getMessage()); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - } - }); - } - - Runnable mRunnable = new Runnable() { - @Override - public void run() { - showTopAcivity(); -// showFloatingWindow(); -// mHandler.postDelayed(this, 10 * 1000); - } - }; - - private int changeNum(int status) { - int num = 1; - switch (status) { - case 0: - num = 1; - break; - case 1: - num = 0; - break; - default: - num = 1; - } - return num; - } - - private Handler mHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - switch (msg.what) { - case 200: - JSONObject jsonObject = (JSONObject) msg.obj; - installAPK(jsonObject); - break; - case -200: - Log.e("fht", "no update"); - } - } - - }; - - private void installAPK(JSONObject jsonObject) { - String url = jsonObject.getString("url"); - int versionCode = jsonObject.getInteger("version_code"); - String packageName = jsonObject.getString("package"); - String app_name = jsonObject.getString("app_name"); - JSONObject object = new JSONObject(); - object.put("app_name", app_name); - object.put("app_package", packageName); - PackageManager pm = getPackageManager(); - PackageInfo packageInfo = null; - try { - packageInfo = pm.getPackageInfo(packageName, 0); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } - if (packageInfo == null || packageInfo.versionCode < versionCode) { -// Aria.download(this) -// .load(url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(packageName) + ".apk", true) -// .setExtendField(object.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, url, object); - } else { - Log.e("fht", "无需更新"); - } - - } - - private void showTopAcivity() { -// if (true) { -// Intent intent = new Intent(this, TopActivity.class); -// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); -// intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); -// startActivity(intent); -// } - - } - - - @Override - public void onDestroy() { - super.onDestroy(); - if (null != lockScreenReceiver) { - unregisterReceiver(lockScreenReceiver); - } - Log.e("fht", "InitJpushServer onDestroy"); - - } - - private static WindowManager windowManager; - private View topView; - boolean screenlocked = false; - boolean timelocked = false; - - @SuppressLint("NewApi") - private void showFloatingWindow(String name) { - if (Settings.canDrawOverlays(this)) { - // 获取WindowManager服务 - if (null == windowManager) { - windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); - } - DisplayMetrics dm = new DisplayMetrics(); - windowManager.getDefaultDisplay().getRealMetrics(dm); - int width = dm.widthPixels; // 屏幕宽度(像素) - int height = dm.heightPixels; // 屏幕高度(像素) - // 新建悬浮窗控件 - final Button button = new Button(getApplicationContext()); - button.setText("霸屏测试"); - button.setAlpha(0.9f); - button.setBackgroundColor(Color.WHITE); - button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { -// windowManager.removeView(button); - } - }); - if (null == topView) { - topView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.activity_top, null); - TextView textView = topView.findViewById(R.id.textView); - textView.setText(name); - } else { - if (topView.getTag().equals("added")) { - TextView textView = topView.findViewById(R.id.textView); - textView.setText(name); - return; - } - } -// topView.setAlpha(0.8f); - TextView textView = topView.findViewById(R.id.textView); - textView.setText(name); - // 设置LayoutParam - WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; - } else { - layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE; - } - layoutParams.flags = WindowManager.LayoutParams.FLAG_BLUR_BEHIND; - layoutParams.format = PixelFormat.RGBA_8888; - layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; - layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT; - layoutParams.x = 0; - layoutParams.y = 0; - - // 将悬浮窗控件添加到WindowManager - windowManager.addView(topView, layoutParams); - topView.setTag("added"); - } - } - - private void hideFloatingWindow() { - if (null == windowManager) { - return; - } - if (null != topView) { - windowManager.removeView(topView); - topView = null; - } - } - - - private LockScreenReceiver lockScreenReceiver; - - private void registReceiver() { - if (null == lockScreenReceiver) { - lockScreenReceiver = new LockScreenReceiver(); - IntentFilter filter = new IntentFilter(); - filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); - filter.addAction(LockScreenReceiver.action_lock); - filter.addAction(LockScreenReceiver.action_unlock); - registerReceiver(lockScreenReceiver, filter); - } - - } - - - public class LockScreenReceiver extends BroadcastReceiver { - public static final String action_lock = "LockScreenReceiver_lockscreen"; - public static final String action_unlock = "LockScreenReceiver_unlockscreen"; - - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (TextUtils.isEmpty(action)) { - return; - } - if (action_lock.equals(action)) { - String name = intent.getStringExtra("name"); - if (!timelocked) { - showFloatingWindow(name); - } - screenlocked = true; - } else if (action_unlock.equals(action)) { - if (!timelocked) { - hideFloatingWindow(); - } - screenlocked = false; - } - } - } - - - private TimeChangedReceiver mTimeChangedReceiver; - - //监听时间和日期变化 - public void registerTimeReceiver() { - mTimeChangedReceiver = new TimeChangedReceiver(); - IntentFilter filter = new IntentFilter(); - filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); - filter.addAction(Intent.ACTION_DATE_CHANGED); - filter.addAction(Intent.ACTION_TIME_CHANGED); - filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); - filter.addAction(Intent.ACTION_TIME_TICK); - filter.addAction(TimeChangedReceiver.ACTION_UPDATE); - registerReceiver(mTimeChangedReceiver, filter); - } - - public class TimeChangedReceiver extends BroadcastReceiver { - - public static final String ACTION_UPDATE = "TimeChangedReceiver_update"; - - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (Intent.ACTION_DATE_CHANGED.equals(action)) { - Log.e("fht", "TimeChangedReceiver:" + "data changed"); - } else if (Intent.ACTION_TIME_CHANGED.equals(action)) { - Log.e("fht", "TimeChangedReceiver:" + "time changed"); - } else if (Intent.ACTION_TIMEZONE_CHANGED.equals(action)) { - Log.e("fht", "TimeChangedReceiver:" + "timezone changed"); - } else if (Intent.ACTION_TIME_TICK.equals(action)) { - Log.e("fht", "TimeChangedReceiver:" + "time tick"); - } else if (ACTION_UPDATE.equals(action)) { - Log.e("fht", "TimeChangedReceiver:" + "date update"); - } - ForegroundAppUtil.openTopApp(context); - long nowTime = System.currentTimeMillis(); - TimeUtils.ContralTime contralTime = TimeUtils.getDefaltContralTime(context); - if (null != contralTime) { - if (contralTime.inControlTime(nowTime)) { - if (!screenlocked) { - showFloatingWindow("管控时间:" + contralTime.toString()); - } else { - TextView textView = topView.findViewById(R.id.textView); - textView.setText("管控时间:" + contralTime.toString()); - } - timelocked = true; - } else { - getScreenLockState(); - if (!screenlocked) { - hideFloatingWindow(); - } - timelocked = false; - } - } else { - if (!screenlocked) { - hideFloatingWindow(); - } - getScreenLockState(); - timelocked = false; - } - - } - } - - private void initJpush() { - TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean(); - tagAliasBean.action = ACTION_SET; - sequence++; - tagAliasBean.alias = Utils.getSerial(); - tagAliasBean.isAliasAction = true; - TagAliasOperatorHelper.getInstance().handleAction(this, sequence, tagAliasBean); -// JPushInterface.setAlias(this, Utils.getSerial(), new TagAliasCallback() { -// @Override -// public void gotResult(int i, String s, Set set) { -// if (set == null) { -// Log.e("initmjsheng", "set is null"); -// } else { -// Log.e("initmjsheng", "set ---" + set.toString()); -// } -// Log.e("JPushInterface", s + "---" + i + "---"); -// if (i == 0) { -// Log.e("JPushInterface", "JPush绑定成功"); -// -// } else if (i == 6001) { -// Log.e("JPushInterface", "无效的设置,用户名为空"); -// } else if (i == 6002) { -// Log.e("JPushInterface", "设置超时,请重试"); -// timerImitate(); -// } else if (i == 6011) { -// Log.e("JPushInterface", "短时间内操作过于频繁"); -// } else if (i == 996) { -// Log.e("JPushInterface", "网络连接断开"); -// timerImitate(); -// } -// } -// }); - - } - - //重新设置jpush - synchronized private void timerImitate() { - Observable.timer(15000, TimeUnit.MILLISECONDS) - .observeOn(rx.android.schedulers.AndroidSchedulers.mainThread()) - .subscribe(new Action1() { - @Override - public void call(Long aLong) { - checkUpdate(); - getLockedState();// - } - }); - } - - private void getDefaultDesktop() { - OkGo.get(URLAddress.GET_DESKTOP) - .params("sn", Utils.getSerial()) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - Log.e("getDefaultDesktop", "onSuccess: " + s); - try { - JSONObject jsonObject = JSON.parseObject(s); - int code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - installDesktop(data); - } else { - Log.e("getDefaultDesktop", "onSuccess: " + "没有部署桌面"); - } - } catch (Exception e) { - Log.e("getDefaultDesktop", "onSuccess: Exception: " + e.getMessage()); - } - - - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("getDefaultDesktop", "onError: " + e.getMessage()); - } - }); - } - - private void installDesktop(JSONObject jsonObject) { - String app_name = jsonObject.getString("app_name"); - String app_url = jsonObject.getString("app_url"); - String app_package = jsonObject.getString("app_package"); - int app_version_code = jsonObject.getInteger("app_version_code"); - PackageInfo info = null; - PackageManager packageManager = getPackageManager(); - if (null != packageManager) { - try { - info = packageManager.getPackageInfo(app_package, 0); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - Log.e("fht", "installDesktop: " + e.getMessage()); - } - if (null != info) { - long versionCode; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - versionCode = info.getLongVersionCode(); - } else { - versionCode = info.versionCode; - } - if (app_version_code > versionCode) { - if (!SaveListUtils.isDownLoading(app_url)) { - Utils.ariaDownload(this, app_url, jsonObject); - } - } - } else { - if (!SaveListUtils.isDownLoading(app_url)) { - Utils.ariaDownload(this, app_url, jsonObject); - } - } - } - } - - private void getDeselectID() { - NetInterfaceManager.getDeselectIDApi() - .getDeselectIDApi(NetInterfaceManager.HTTP_KEY, - Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable param1Disposable) { - Log.e("getDeselectID", "onSubscribe: "); - } - - @Override - public void onNext(ResponseBody param1ResponseBody) { - String ids = ""; - String packages = ""; - try { - String responString = param1ResponseBody.string(); - Log.e("getDeselectID", "onNext: " + responString); - JSONObject jSONObject = JSON.parseObject(responString); - int code = jSONObject.getInteger("code"); - if (code == 200) { - ids = jSONObject.getJSONObject("data").getString("ids"); - packages = jSONObject.getJSONObject("data").getString("package"); - } - } catch (Exception e) { - Log.e("getDeselectID", "onNext: Exception: " + e.getMessage()); - e.printStackTrace(); - } - JGYUtils.getInstance().writeDeselectIDtoSystem(ids, packages); - } - - @Override - public void onError(Throwable param1Throwable) { - Log.e("getDeselectID", "onError: " + param1Throwable.getMessage()); - } - - @Override - public void onComplete() { - Log.e("getDeselectID", "onComplete: "); - } - }); - } - - private void getDeselectBrowerID() { - DeselectBrowserIDApi deselectBrowserIDApi = NetInterfaceManager.getDeselectBrowserIDApi(); - deselectBrowserIDApi.getDeselectBrowserIDApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getDeselectBrowerID", "onSubscribe: "); - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - Log.e("getDeselectBrowerID", "onNext: " + responString); - JSONObject jsonObject = JSON.parseObject(responString); - Integer code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - String ids = data.getString("ids"); - writeDeselectBrowserIDtoSystem(ids); - } else { - Log.e("getDeselectBrowerID", "onNext: code: "); - } - } catch (Exception e) { - Log.e("getDeselectBrowerID", "onNext: Exception: " + e.getMessage()); - - e.printStackTrace(); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getDeselectBrowerID", "onError: "); - } - - @Override - public void onComplete() { - Log.e("getDeselectBrowerID", "onComplete: "); - } - }); - } - - private void getAppLimitApi() { - AppLimitApi appLimitApi = NetInterfaceManager.getAppLimitApi(); - appLimitApi.getAppLimitApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - Log.e("getAppLimitApi", "onNext: " + responString); - JSONObject jsonObject = JSON.parseObject(responString); - Integer code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - String result = data.getString("result"); - JGYUtils.getInstance().writeAppPackageList(DiscardServer.this, result); - } else { - Log.e("getAppLimitApi", "onNext: code:" + code); - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("getAppLimitApi", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getAppLimitApi", "onError: " + e.getMessage()); - } - - @Override - public void onComplete() { - Log.e("getAppLimitApi", "onComplete: "); - } - }); - } - - private void getDeviceBatch(final String result) { - GetBatchApi getBatchApi = NetInterfaceManager.getBatchApi(); - getBatchApi.getBatch(Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getDeviceBatch", "onSubscribe"); - } - - @Override - public void onNext(ResponseBody responseBody) { - String respons = ""; - JSONObject jsonObject = null; - try { - respons = responseBody.string(); - Log.e("getDeviceBatch", "respons:" + respons); - jsonObject = JSON.parseObject(respons); - } catch (IOException e) { - e.printStackTrace(); - } - int code = jsonObject.getInteger("code"); - if (code == 200) { - String data = jsonObject.getString("data"); - List batchList = JSON.parseArray(data, Batch.class); - if (null != batchList && batchList.size() > 1) { - if (!BuildConfig.DEBUG) { -// JGYUtils.getInstance().deleteOtherApp(result); - } - } else { - Log.e("getDeviceBatch", "批次为空"); - } - } - } - - @Override - public void onError(Throwable e) { - Log.e("getDeviceBatch", "onError:" + e.getMessage()); - } - - @Override - public void onComplete() { - Log.e("getDeviceBatch", "onComplete"); - - } - }); - - } - - private void getNetAndLaunchSetting() { - NetAndLaunchApi netAndLaunchApi = NetInterfaceManager.getNetAndLaunchApi(); - netAndLaunchApi.getNetAndLaunchApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getNetAndLaunchSetting", "onSubscribe: "); - - } - - @Override - public void onNext(NetAndLaunchBean netAndLaunchBean) { - // ToastUtils.showShort(netAndLaunchBean.getMsg()); - if (netAndLaunchBean.getCode() == 200) { - setNetAndlaunch(netAndLaunchBean); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getNetAndLaunchSetting", "onError:"); - } - - @Override - public void onComplete() { - Log.e("getNetAndLaunchSetting", "onComplete"); - } - }); - } - - //强制下载 - private void getForceDownload() { - ForceDownloadApi forceDownloadApi = NetInterfaceManager.getForceDownloadApi(); - forceDownloadApi.getForceDownloadApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { -// Log.e("getForceDownload", "forceDownloadApi---onSubscribe"); - - } - - @Override - public void onNext(ForceDownloadBean forceDownloadBean) { - switch (forceDownloadBean.getCode()) { - case 200: -// Log.e("getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading()); - BaseApplication.getInstance().checkIsDownloading(); - if (!BaseApplication.getInstance().isDownloading()) { - Aria.download(this).removeAllTask(true); - Type type = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List forceDownloadData = gson.fromJson(gson.toJson(forceDownloadBean.getData()), type); - forceDownload(forceDownloadData); - } else { - Aria.download(this).resumeAllTask(); - } - break; - case -200: - boolean qch_force_app = Settings.System.putString(getContentResolver(), "qch_force_app", "invalid"); -// Log.e("getForceDownload", "qch_force_app:" + qch_force_app); - break; - default: -// Log.e("getForceDownload", forceDownloadBean.getMsg()); - break; - } - } - - @Override - public void onError(Throwable e) { - Log.e("getForceDownload", "onError:"); - } - - @Override - public void onComplete() { - Log.e("getForceDownload", "onComplete"); - } - }); - } - - private void forceDownload(List data) { - if (data == null || data.size() <= 0) { - return; - } - getSelfDownload(data); - List list = new ArrayList<>(); - for (int i = 0; i < data.size(); i++) { - ForceDownloadData forceDownloadData = data.get(i); - String app_name = forceDownloadData.getApp_name(); - String app_package = forceDownloadData.getApp_package(); - String app_url = forceDownloadData.getApp_url(); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("app_name", app_name); - jsonObject.put("app_package", app_package); - long app_version_code = forceDownloadData.getApp_version_code(); - Log.e("forceDownload", "packageName=" + app_package + ",URL= " + app_url + ",app_version_code=" + app_version_code); - if (data.get(i).getApp_package().equals("com.jiaoguanyi.appstore")) { - continue;//为自身的跳过下载 - } - if (!list.contains(app_package)) { - list.add(app_package); - } - PackageManager pm = getPackageManager(); - PackageInfo packageInfo = null; - try { - packageInfo = pm.getPackageInfo(app_package, 0); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - Log.e("forceDownload", "NameNotFoundException: " + e.getMessage()); - } - if (packageInfo != null) { - long appVersionCode; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - appVersionCode = packageInfo.getLongVersionCode(); - } else { - appVersionCode = packageInfo.versionCode; - } - if (app_version_code > appVersionCode) { - Log.e("forceDownload", "download URL " + app_url); -// Aria.download(this) -// .load(app_url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(app_package) + ".apk", true) -// .setExtendField(jsonObject.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, app_url, jsonObject); - } - } else { - Log.e("forceDownload", "download URL " + app_url); -// if (!SaveListUtils.isDownLoading(app_package)) { -// Aria.download(this) -// .load(app_url) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString(app_package) + ".apk", true) -// .setExtendField(jsonObject.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, app_url, jsonObject); -// SaveListUtils.addDownLoadList(app_package); -// } - } - } - SaveListUtils.setList(list); - SaveListUtils.sendForceAPP(this); - } - - private void getSelfDownload(List forceDownloadDataList) { - for (ForceDownloadData forceDownloadData : forceDownloadDataList) { - if ("com.jiaoguanyi.appstore".equals(forceDownloadData.getApp_package())) { - JSONObject packageObj = new JSONObject(); - packageObj.put("app_name", forceDownloadData.getApp_name()); - packageObj.put("app_package", forceDownloadData.getApp_package()); -// Aria.download(this) -// .load(forceDownloadData.getApp_url()) //读取下载地址 -// .setFilePath(PathUtils.getExternalDownloadsPath() + "/jgy/" + EncryptUtils.encryptMD5ToString("com.jiaoguanyi.appstore") + ".apk", true) -// .setExtendField(packageObj.toJSONString()) -// .create(); //启动下载} - Utils.ariaDownload(this, forceDownloadData.getApp_url(), packageObj); - - } else { - Log.e("getSelfDownload", "未上传应用"); - } - } - } - - private void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) { - Log.e("setNetAndlaunch", netAndLaunchBean.toString()); - String net_ok = ""; - String net_not = ""; - String launch = ""; - String camera_ok = ""; - String camera_not = ""; - String upgrade_ok = ""; - String upgrade_not = ""; - String slide_ok = ""; - String slide_not = ""; - - List data = netAndLaunchBean.getData(); - for (int i = 0; i < data.size(); i++) { - NetAndLaunchData netAndLaunchData = data.get(i); - String app_package = netAndLaunchData.getApp_package(); - int is_auto = netAndLaunchData.getIs_auto(); - int is_network = netAndLaunchData.getIs_network(); - int is_camera = netAndLaunchData.getIs_camera(); - int is_upgrade = netAndLaunchData.getIs_upgrade(); - int is_slide = netAndLaunchData.getIs_slide(); - - - if (is_auto == 1) { - launch += app_package + ","; - } - if (is_network == 1) { - net_ok += app_package + ","; - } else { - net_not += app_package + ","; - } - - if (is_camera == 1) { - camera_ok += app_package + ","; - } else { - camera_not += app_package + ","; - } - if (is_upgrade == 1) { - upgrade_ok += app_package + ","; - } else { - upgrade_not += app_package + ","; - } - if (is_slide == 1) { - slide_ok += app_package + ","; - } else { - slide_not += app_package + ","; - } - } - - - if (!TextUtils.isEmpty(launch)) { - launch = launch.substring(0, launch.length() - 1); - } - if (!TextUtils.isEmpty(net_ok)) { - net_ok = net_ok.substring(0, net_ok.length() - 1); - } - if (!TextUtils.isEmpty(net_not)) { - net_not = net_not.substring(0, net_not.length() - 1); - } - if (!TextUtils.isEmpty(camera_ok)) { - camera_ok = camera_ok.substring(0, camera_ok.length() - 1); - } - if (!TextUtils.isEmpty(camera_not)) { - camera_not = camera_not.substring(0, camera_not.length() - 1); - } - if (!TextUtils.isEmpty(upgrade_ok)) { - upgrade_ok = upgrade_ok.substring(0, upgrade_ok.length() - 1); - } - if (!TextUtils.isEmpty(upgrade_not)) { - upgrade_not = upgrade_not.substring(0, upgrade_not.length() - 1); - } - if (!TextUtils.isEmpty(slide_ok)) { - slide_ok = slide_ok.substring(0, slide_ok.length() - 1); - } - if (!TextUtils.isEmpty(slide_not)) { - slide_not = slide_not.substring(0, slide_not.length() - 1); - boolean writeSucceed = Settings.System.putString(this.getContentResolver(), "qch_disable_slide", slide_not); - Log.e("setNetAndlaunch", "qch_disable_slide=" + writeSucceed + ":" + slide_not); - } else { - boolean writeSucceed = Settings.System.putString(this.getContentResolver(), "qch_disable_slide", "Invalid"); - Log.e("setNetAndlaunch", "qch_disable_slide ok=" + writeSucceed + ":" + slide_ok); - } - - Utils.writeDisableUpdateList(this, upgrade_not.split(","), upgrade_ok.split(",")); - Log.e("setNetAndlaunch", "UpdateList:upgrade_not:" + upgrade_not + "-----------upgrade_ok:" + upgrade_ok); - - Log.e("setNetAndlaunch", "launch:" + launch + "-----------net_ok:" + net_ok + "-----------net_not:" + net_not); - boolean qch_app_power_on = Settings.System.putString(this.getContentResolver(), "qch_app_power_on", launch); - -// Intent netControlIntent = new Intent(CommonDatas.ACTION_HrReceiver_JGY_DIS); -// netControlIntent.putExtra("package_name", net_not); -// sendBroadcast(netControlIntent); -// -// Intent netControlNotIntent = new Intent(CommonDatas.ACTION_HrReceiver_JGY); -// netControlNotIntent.putExtra("package_name", net_ok); -// sendBroadcast(netControlNotIntent); - if (!net_not.equals("")) { - String[] bans = net_not.split(","); -// Settings.System.putString(getContentResolver(), "qch_jgy_network_disallow", net_not); - Log.e("setNetAndlaunch", "ban::" + net_not); - } - - BaseApplication.getInstance().setFinished(true); - if (!net_ok.equals("")) { - String[] nots = net_ok.split(","); -// Settings.System.putString(getContentResolver(), "qch_jgy_network_allow", net_ok); - Log.e("setNetAndlaunch", "not::" + net_ok); - } - //app联网管控需要桌面launcher的支持,如果更换第三方launcher功能失效 - - -// Intent intent2 = new Intent("qch_camera_forbid"); -// intent2.putExtra("camera_package_name", camera_not).setPackage("com.android.settings"); -// sendBroadcast(intent2); -// Intent intent1 = new Intent("qch_camera_open"); -// intent1.putExtra("camera_package_name", camera_ok).setPackage("com.android.settings"); -// sendBroadcast(intent1); - } - - private void writeDeselectBrowserIDtoSystem(String ids) { -// if (!TextUtils.isEmpty(ids)) { - boolean deselectBrowserArray = Settings.System.putString(this.getContentResolver(), "DeselectBrowserArray", ids); - Log.e("writeDeselectBrowserIDtoSystem", "DeselectBrowserArray: " + deselectBrowserArray); -// } else { - -// } - } - - - private void getSystemSetting() { - final SystemSettingApi systemSettingApi = NetInterfaceManager.getSystemSettingApi(); - systemSettingApi.getSystemSettingApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getSystemSetting", "onSubscribe: "); - } - - @Override - public void onNext(ResponseBody responseBody) { - try { - String responString = responseBody.string(); - Log.e("getSystemSetting", "系统管控::" + responString); - JSONObject jsonObject = JSON.parseObject(responString); - Integer code = jsonObject.getInteger("code"); - if (code == 200) { - JSONObject data = jsonObject.getJSONObject("data"); - SettingSysData(data); - } else { - Log.e("getSystemSetting", "onNext: code: " + code); - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("getSystemSetting", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getSystemSetting", "onError: "); - } - - @Override - public void onComplete() { - Log.e("getSystemSetting", "onComplete: "); - } - }); - } - - //获取教管易版本号 - synchronized private String getAPPVersionName() { - PackageManager pm = getPackageManager(); - String versionName; - try { - PackageInfo packageInfo = pm.getPackageInfo("com.jiaoguanyi.store", 0); - versionName = packageInfo.versionName; - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - versionName = "0"; - } - return versionName; - } - - synchronized public void sendMACaddress() { - String rid = JPushInterface.getRegistrationID(this); - OkGo.post(URLAddress.SEND_DEVICES) - .params("sn", Utils.getSerial()) - .params("mac", com.blankj.utilcode.util.DeviceUtils.getMacAddress()) - .params("jpush_id", rid) - .params("devices_version", Utils.getCustomVersion()) - .params("appstore_version", BuildConfig.VERSION_NAME)//我的设备版本号 - .params("store_version", getAPPVersionName())//管教易版本号 - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - JSONObject msgObject = JSON.parseObject(s); - Log.e("sendMACaddress", "onSuccess: " + msgObject); - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("sendMACaddress", "onError: " + e.getMessage()); - } - }); - { - - } - } - - boolean locked = false; - - synchronized public void getLockedState() { - OkGo.post(URLAddress.GET_DEVICES_LOCKED) - .params("sn", Utils.getSerial()) - .execute(new StringCallback() { - @Override - public void onSuccess(String s, Call call, Response response) { - Log.e("getLockedState", "onSuccess: " + s); - Log.e("getLockedState", "onSuccess: " + Utils.getSerial()); - JSONObject msgObject = JSON.parseObject(s); - Integer code = (msgObject.getInteger("code")); - if (code == 200) { - JSONObject dataArray = msgObject.getJSONObject("data"); - int lock = dataArray.getInteger("lock"); - Log.e("jpttlocked", String.valueOf(lock)); - if (lock == 0) { - locked = false; - boolean se = Settings.System.putInt(getContentResolver(), "qch_unlock_ipad", 1); -// SysSettingUtils.setEnableSetting(DiscardServer.this); - SPUtils.put(DiscardServer.this, "first_connect", 1); - Log.e("fht", "getLockedState---------" + Settings.System.getString(getContentResolver(), "qch_unlock_ipad")); - Log.e("jpttlocked1", "qch_unlock_ipad---------" + locked + se); - } else { - locked = true; - Settings.System.putInt(getContentResolver(), "qch_unlock_ipad", 0); - Log.e("jpttlocked2", "qch_unlock_ipad---------" + locked); -// Settings.System.putString(this.getContentResolver(), "DeselectBrowserArray", "http://www.baidu.com"); - String ss = Settings.System.getString(getContentResolver(), "DeselectBrowserArray"); - Log.e("jpttlocked2", "DeselectBrowserArray---------" + ss); - // 初始化 JPush - JPushInterface.init(DiscardServer.this); - initJpush(); - HTTPInterface.setJpushTags(DiscardServer.this); - sendMACaddress(); - HTTPInterface.setBrowserBlackList(DiscardServer.this);//浏览器网址管控 -// HTTPInterface.getAppinsideWeb(DiscardServer.this);//app内部网页管控 - HTTPInterface.setHomepagtag(DiscardServer.this);//设置主页和标签 - HTTPInterface.setHideDesktopIcon(DiscardServer.this);//设置桌面图标隐藏 -// getAppLimitApi();//获取可以写入的app包名 - getDeselectID(); -// getDeselectBrowerID(); - getNetAndLaunchSetting(); -// Aria.download(this).removeAllTask(true); - getForceDownload(); - getSystemSetting();//从后台获取功能状态 - resetDevice(); -// MyApplication.getInstance().getWhitePackageList(); - getDefaultDesktop(); - HTTPInterface.getSnTimeControl(DiscardServer.this); - HTTPInterface.getTopAppControl(DiscardServer.this); - - } - } else if (code == -300) { -// ApkUtils.uninstallAllApp(this); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - Log.e("onError", "error"); - } - - });// 请求方式和请求url - } - - private void resetDevice() { - boolean isReset = MySQLData.GetBooleanData(this, CommonDatas.IS_RESET); - int batteryLevel = getBatteryLevel(); - Log.e("resetDevice", "batteryLevel: " + batteryLevel + "isReset: " + isReset); - if (isReset && batteryLevel >= CommonDatas.MIN_POWER) { - Utils.doMasterClear(this); - } - } - - private int getBatteryLevel() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - BatteryManager batteryManager = (BatteryManager) getSystemService(BATTERY_SERVICE); - return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY); - } else { - Intent intent = new ContextWrapper(this). - registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - return (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) / - intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); - } - } - - private void checkUpdate() { - HTTPInterface.checkUpdate(mHandler, "com.jiaoguanyi.store"); - HTTPInterface.checkTestUpdate(this); - } - - private BluetoothAdapter mBluetoothAdapter; - - private void SettingSysData(JSONObject data) { - SPUtils.put(this, "first_connect", 1); -// SysSettingUtils.setSystemSetting(this, data.toString()); - -// try { -// int setting_call = changeNum(data.optInt("setting_call")); -// boolean qch_call_forbid = Settings.System.putInt(this.getContentResolver(), "qch_call_forbid", setting_call); -// Log.e("SystemSetting", "qch_call_forbid---------" + qch_call_forbid); -// -// int setting_phone = changeNum(data.optInt("setting_phone")); -// boolean qch_white_list_on = Settings.System.putInt(this.getContentResolver(), "qch_white_list_on", setting_phone); -// Log.e("SystemSetting", "qch_white_list_on---------" + qch_white_list_on); -// -// String setting_phones = data.optString("setting_phones"); -// boolean qch_white_list_Array = Settings.System.putString(this.getContentResolver(), "qch_white_list_Array", setting_phones); -// // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); -// Log.e("SystemSetting", "qch_white_list_Array---------" + qch_white_list_Array + "---" + setting_phones); -// -// int setting_memory = changeNum(data.optInt("setting_memory")); -// boolean qch_sdcard_forbid_on = Settings.System.putInt(this.getContentResolver(), "qch_sdcard_forbid_on", setting_memory); -// Log.e("SystemSetting", "qch_sdcard_forbid_on---------" + qch_sdcard_forbid_on); -// -// -// //USB数据功能管控 -// //仅充电:usb_charge -// //MTP模式:usb_mtp -// //Midi模式:usb_midi -// String setting_usb = data.optString("setting_usb"); -// if (!BuildConfig.DEBUG) { -// boolean qch_usb_choose = Settings.System.putString(this.getContentResolver(), "qch_usb_choose", setting_usb); -// Log.e("SystemSetting", "qch_usb_choose---------" + qch_usb_choose); -// String usbStatus = ""; -// switch (setting_usb) { -// case "usb_charge": -// usbStatus = "qch_action_usb_usb_charge"; -// break; -// case "usb_mtp": -// usbStatus = "qch_action_usb_usb_mtp"; -// break; -// case "usb_midi": -// usbStatus = "qch_action_usb_usb_midi"; -// break; -// -// } -// Intent usbIntent = new Intent(usbStatus).setPackage("com.android.settings"); -// sendBroadcast(usbIntent); -// } -// -// //otg开关 -//// int setting_otg = changeNum(data.optInt("setting_otg")); -//// Log.e("SystemSetting", "setting_otg---------" + setting_otg); -//// String otgStatus = ""; -//// switch (setting_otg) { -//// case 0: -//// otgStatus = "qch_otg_open"; -//// break; -//// case 1: -//// otgStatus = "qch_otg_forbid"; -//// break; -//// } -//// Intent otgIntent = new Intent(otgStatus); -//// sendBroadcast(otgIntent); -// -// //蓝牙开关 -// int setting_bht = changeNum(data.optInt("setting_bht"));//总开关 -// int setting_bhtvideo = changeNum(data.optInt("setting_bhtvideo"));//蓝牙音频开关 -// int setting_bluetooth = changeNum(data.optInt("setting_bluetooth"));//蓝牙传输开关 -// -// boolean qch_bht_forbid_on = Settings.System.putInt(this.getContentResolver(), "qch_bht_forbid_on", setting_bht);//写入系统数据库 -// Log.e("SystemSetting", "qch_bht_forbid_on:" + qch_bht_forbid_on); -// if (qch_bht_forbid_on) {//成功 -// if (null == mBluetoothAdapter) { -// mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//获取默认蓝牙适配器 -// } -// if (setting_bht == 0) {//蓝牙总开关开启 -// String setting_context = data.optString("setting_context");// -// if (setting_bhtvideo == 0) { -// if (null != setting_context && !setting_context.equals("") && !setting_context.equals(" ") && !setting_context.equals("null")) { -// Log.e("SystemSetting", "setting_context:" + setting_context); -// Settings.System.putString(this.getContentResolver(), "qch_bhtvideo_forbid_on", setting_context); -// } else { -// Settings.System.putString(this.getContentResolver(), "qch_bhtvideo_forbid_on", "Empty"); -// } -// } else if (setting_bhtvideo == 1) { -// Settings.System.putString(this.getContentResolver(), "qch_bhtvideo_forbid_on", "Empty"); -// } -// Settings.System.putInt(this.getContentResolver(), "qch_bt_forbid_on", setting_bluetooth); -// } else { -// mBluetoothAdapter.disable();//设置关闭时关闭蓝牙 -// } -// -// } -// -// int setting_hotspot = changeNum(data.optInt("setting_hotspot"));//热点 -// if (setting_hotspot == 1) { -// Intent intent = new Intent(); -// intent.setAction("qch_hotspot_close"); -// intent.setPackage("com.android.settings"); -// this.sendStickyBroadcast(intent); -// } -// boolean qch_hotspot_forbid_on = Settings.System.putInt(this.getContentResolver(), "qch_hotspot_forbid_on", setting_hotspot);//写入系统数据库 -// Log.e("SystemSetting", "qch_hotspot_forbid_on---------" + setting_hotspot); -// Log.e("SystemSetting", "qch_hotspot_forbid_on---------" + qch_hotspot_forbid_on); -// -// //系统导航条显示开关 -// int setting_navigation = changeNum(data.optInt("setting_navigation")); -// boolean qch_hide_navigationBar = Settings.System.putInt(this.getContentResolver(), "qch_hide_NavigationBar", setting_navigation); -// Log.e("SystemSetting", "qch_hide_navigationBar---------" + qch_hide_navigationBar); -// -// String navigationStatus = ""; -// switch (setting_navigation) { -// case 0: -// navigationStatus = "qch_show_NavigationBar"; -// break; -// case 1: -// navigationStatus = "qch_hide_NavigationBar"; -// break; -// -// } -// Intent navIntent = new Intent(navigationStatus).setPackage("com.android.systemui"); -// sendBroadcast(navIntent); -// -// -// //状态栏显示开关 -// int setting_statusbar = changeNum(data.optInt("setting_statusbar")); -// int oldNum = Settings.System.getInt(getContentResolver(), "qch_hide_statusBar", 0); -// if (oldNum != setting_statusbar) { -// boolean qch_hide_statusBar = Settings.System.putInt(getContentResolver(), "qch_hide_statusBar", setting_statusbar); -// Log.e("SystemSetting", "qch_hide_statusBar---------" + qch_hide_statusBar); -// String statusbarStatus = ""; -// switch (setting_statusbar) { -// case 0: -// statusbarStatus = "qch_show_statusBar"; -// break; -// case 1: -// statusbarStatus = "qch_hide_statusBar"; -// break; -// } -// Intent statusIntent = new Intent(statusbarStatus).setPackage("com.android.systemui"); -// sendBroadcast(statusIntent); -// } -// -// -// //摄像头开关 -// int setting_camera = changeNum(data.optInt("setting_camera")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_camera", setting_camera); -//// ApkUtils.hideSystemSettingAPP(this, "com.mediatek.camera"); -// Log.e("SystemSetting", "setting_camera---------" + setting_camera); -// String cameraStatus = ""; -// switch (setting_camera) { -// case 0: -// cameraStatus = "qch_camera_open"; -// break; -// case 1: -// cameraStatus = "qch_camera_forbid"; -// break; -// } -// Intent cameraIntent = new Intent(cameraStatus).setPackage("com.android.settings"); -// sendBroadcast(cameraIntent); -// -// -// //tfmedia开关 -// int setting_tfmedia = changeNum(data.optInt("setting_tfmedia")); -// boolean qch_tfmedia_forbid = Settings.System.putInt(this.getContentResolver(), -// "qch_tfmedia_forbid", setting_tfmedia); -// Log.e("SystemSetting", "setting_tfmedia---------" + qch_tfmedia_forbid); -// String tfmediaStatus = ""; -// switch (setting_tfmedia) { -// case 0: -// tfmediaStatus = "qch_tfmedia_open"; -// break; -// case 1: -// tfmediaStatus = "qch_tfmedia_forbid"; -// break; -// } -// Intent tfmediaIntent = new Intent(tfmediaStatus).setPackage("com.android.settings"); -// sendBroadcast(tfmediaIntent); -// if (setting_tfmedia == 1) { -// JSONArray jSONArray = null; -// try { -// jSONArray = data.getJSONArray("setting_tfmedia_format"); -// -// int i = 0; -// StringBuffer stringBuffer = new StringBuffer(); -// while (!jSONArray.isNull(i)) { -// stringBuffer.append(jSONArray.getString(i)); -// stringBuffer.append(","); -// i++; -// } -// stringBuffer.deleteCharAt(stringBuffer.length() - 1); -// Settings.System.putString(this.getContentResolver(), "qch_tfmedia_filetypes", stringBuffer.toString());//影音管控 -// Log.e("SystemSetting", "qch_tfmedia_filetypes---------" + stringBuffer.toString()); -// -// } catch (JSONException e) { -// Log.e("SystemSetting", "qch_tfmedia_filetypes---------" + e.getMessage()); -// -// } -// } else { -// Settings.System.putInt(this.getContentResolver(), "qch_tfmedia_forbid", 0); -// } -// //added:2019.12.6 -// //设置5个app的开关 -// //时钟 -// int deskclock = changeNum(data.optInt("setting_clock")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_deskclock", deskclock); -// ApkUtils.hideSystemSettingAPP(this, "com.android.deskclock"); -// Log.e("SystemSetting", "qch_app_deskclock" + deskclock); -// //录音机 -// int soundrecorder = changeNum(data.optInt("setting_recording")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_soundrecorder", soundrecorder); -// ApkUtils.hideSystemSettingAPP(this, "com.android.soundrecorder"); -// Log.e("SystemSetting", "qch_app_soundrecorder" + soundrecorder); -// //音乐 -// int music = changeNum(data.optInt("setting_music")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_music", music); -// ApkUtils.hideSystemSettingAPP(this, "com.android.music"); -// Log.e("SystemSetting", "qch_app_music" + music); -// //图库 -// int gallery = changeNum(data.optInt("setting_picture")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_gallery", gallery); -// ApkUtils.hideSystemSettingAPP(this, "com.android.gallery3d"); -// Log.e("SystemSetting", "qch_app_gallery" + gallery); -// //壁纸 -// int wallpaper = changeNum(data.optInt("setting_wallpaper")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_wallpaper", wallpaper); -// Log.e("SystemSetting", "qch_app_wallpaper" + wallpaper); -// //文件管理器 -// int filemanager = changeNum(data.optInt("setting_file")); -// Settings.System.putInt(this.getContentResolver(), "qch_app_filemanager", filemanager); -// if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { -// ApkUtils.hideSystemSettingAPP(this, "com.mediatek.filemanager"); -// } else { -// ApkUtils.hideSystemSettingAPP(this, "com.android.documentsui"); -// } -// Log.e("SystemSetting", "qch_app_filemanager" + filemanager); -// } catch (Exception e) { -// e.printStackTrace(); -// Log.e("mjsheng", "SettingSysData---1error::" + e.getMessage()); -// } - } - - -} diff --git a/app/src/main/java/com/mjsheng/myappstore/server/GuardService.java b/app/src/main/java/com/mjsheng/myappstore/server/GuardService.java index 717027c..0504b61 100644 --- a/app/src/main/java/com/mjsheng/myappstore/server/GuardService.java +++ b/app/src/main/java/com/mjsheng/myappstore/server/GuardService.java @@ -291,13 +291,10 @@ public class GuardService extends Service { if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZhanruiPlatform) { int setting_statusbar = Settings.System.getInt(context.getContentResolver(), "qch_hide_statusBar", 0); String statusbarStatus = ""; - switch (setting_statusbar) { - case 0: - statusbarStatus = "qch_show_statusBar"; - break; - case 1: - statusbarStatus = "qch_hide_statusBar"; - break; + if (setting_statusbar == 0) { + statusbarStatus = "qch_show_statusBar"; + } else if (setting_statusbar == 1) { + statusbarStatus = "qch_hide_statusBar"; } Intent navIntent = new Intent(statusbarStatus).setPackage("com.android.systemui"); context.sendBroadcast(navIntent); @@ -544,7 +541,7 @@ public class GuardService extends Service { List list = Aria.download(this).getDRunningTask(); if (list == null || list.size() == 0) { BaseApplication.getInstance().setDownloadState(false); - Log.e("aria", "isDownloading=" + BaseApplication.getInstance().isDownloading()); + Log.e("taskComplete", "isDownloading=" + BaseApplication.getInstance().isDownloading()); } } OkGo.post(URLAddress.HTTP_TAG_DOWNLOAD_URL) @@ -561,6 +558,7 @@ public class GuardService extends Service { @Override public void onError(Call call, Response response, Exception e) { + Log.e("taskComplete", "onError: " + e.getMessage()); super.onError(call, response, e); } }); @@ -576,16 +574,17 @@ public class GuardService extends Service { .execute(new StringCallback() { @Override public void onSuccess(String s, Call call, okhttp3.Response response) { - Log.e("downloadApp", "onSuccess: " + s); + Log.e("taskComplete", "onSuccess: " + s); } @Override public void onError(Call call, Response response, Exception e) { super.onError(call, response, e); + Log.e("taskComplete", "onError: " + e.getMessage()); } }); } else if (filepath.endsWith(".zip")) { - Log.e("aria", "下载完成:" + task.getPercent() + ":" + task.getExtendField()); + Log.e("taskComplete", "下载完成:" + task.getPercent() + ":" + task.getExtendField()); JGYUtils.getInstance().setBootanimation(task.getFilePath()); } } diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/BootManager.java b/app/src/main/java/com/mjsheng/myappstore/utils/BootManager.java new file mode 100644 index 0000000..8941db1 --- /dev/null +++ b/app/src/main/java/com/mjsheng/myappstore/utils/BootManager.java @@ -0,0 +1,44 @@ +package com.mjsheng.myappstore.utils; + +import android.content.Context; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.mjsheng.myappstore.action.JGYActions; + +public class BootManager { + private Context mContext; + private final static String TAG = BootManager.class.getSimpleName(); + + public BootManager(Context context) { + this.mContext = context; + } + + public void start() { + sendLauncherIcon(); + setStatusbar(); + JGYUtils.getInstance().onBootSendNetwork(); + JGYUtils.getInstance().onBootSetAppInsideWeb(); + } + + private void sendLauncherIcon() { + String packageList = Settings.System.getString(mContext.getContentResolver(), "only_jgy_shortcut_list"); + if (TextUtils.isEmpty(packageList)) { + Settings.System.putString(mContext.getContentResolver(), "qch_launcher_icon_app", ""); + } + } + + private void setStatusbar() { + String status = (String) SPUtils.get(mContext, JGYActions.ACTION_StatusBar_STATUS, ""); + Log.e(TAG, "setStatusbar: String: " + status); + if (TextUtils.isEmpty(status)) { + Log.e(TAG, "setStatusbar: " + "status is NULL"); + return; + } + JSONObject jsonObject = JSON.parseObject(status); + SysSettingUtils.setStatusBar(mContext, jsonObject); + } +} diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java b/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java index 33fbab4..e3ba98f 100644 --- a/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java +++ b/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java @@ -41,8 +41,10 @@ import com.mjsheng.myappstore.bean.TTAppground; import com.mjsheng.myappstore.comm.CommonDatas; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -171,6 +173,7 @@ public class JGYUtils { */ @SuppressLint("NewApi") synchronized public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) { + Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString()); Log.e(TAG, "setNetAndlaunch: "); HashSet autoLaunchApp = new HashSet<>();//开机自启app HashSet allowNetApp = new HashSet<>();//允许联网 @@ -209,14 +212,25 @@ public class JGYUtils { boolean writeSucceed = Settings.System.putString(mContext.getContentResolver(), "qch_disable_slide", "Invalid"); Log.e("fht", "qch_disable_slide ok=" + writeSucceed + ":" + slide_ok); } + String[] upgrade_ok = new String[allowUpgrade.size()]; allowUpgrade.toArray(upgrade_ok); String[] upgrade_not = new String[disallowUpgrade.size()]; disallowUpgrade.toArray(upgrade_not); Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok); - - Settings.System.putString(mContext.getContentResolver(), "qch_app_power_on", String.join(",", autoLaunchApp)); - + String qch_app_power_on = String.join(",", autoLaunchApp); + Log.e(TAG, "setNetAndlaunch: qch_app_power_on: " + qch_app_power_on); + if (TextUtils.isEmpty(qch_app_power_on)) { + //当 qch_app_power_on 的值为空时,会造成系统所有应用断网 + Settings.System.putString(mContext.getContentResolver(), "qch_app_power_on", "Invalid"); + } else { + Settings.System.putString(mContext.getContentResolver(), "qch_app_power_on", qch_app_power_on); + } +// if (BuildConfig.DEBUG) { + // TODO: 2021/7/2 测试写入为空是否断网 +// boolean w = Settings.System.putString(mContext.getContentResolver(), "qch_app_power_on", ""); +// Log.e(TAG, "setNetAndlaunch: 测试写入: " + w); +// } setAppNetwork(mContext, disallowNetApp); BaseApplication.getInstance().setFinished(true); } @@ -224,19 +238,20 @@ public class JGYUtils { @SuppressLint("NewApi") synchronized public static void setAppNetwork(Context context, HashSet blackList) { + Log.e(TAG, "setAppNetwork: " + "设置应用联网管控" + blackList); String dis = Settings.System.getString(context.getContentResolver(), JGYActions.ACTION_HrReceiver_JGY_DIS); String not = Settings.System.getString(context.getContentResolver(), JGYActions.ACTION_HrReceiver_JGY); //清除旧数据 if (!TextUtils.isEmpty(dis)) { Log.e(TAG, "setAppNetwork: " + dis); - Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_HrReceiver_JGY_DIS, ""); + Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_HrReceiver_JGY_DIS, "Invalid"); } if (!TextUtils.isEmpty(not)) { Log.e(TAG, "setAppNetwork: " + not); - Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_HrReceiver_JGY, ""); + Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_HrReceiver_JGY, "Invalid"); } - String oldBlackList = (String) SPUtils.get(context, JGYActions.ACTION_HrReceiver_JGY_DIS, ""); + String oldBlackList = (String) SPUtils.get(context, JGYActions.ACTION_HrReceiver_JGY_DIS, "Invalid"); HashSet oldBlackListSet = new HashSet<>(Arrays.asList(oldBlackList.split(","))); oldBlackListSet.removeIf(new Predicate() { @Override @@ -420,6 +435,7 @@ public class JGYUtils { * @param response 黑白名单都可以管控 */ synchronized public void setNewAppinsideWeb(BaseResponse response) { + Log.e(TAG, "setNewAppinsideWeb: " + "应用内部联网管控: " + response); if (response.code == 200) { String jsonString = JSONArray.toJSONString(response.data); List appgrounds = JSONObject.parseArray(jsonString, TTAppground.class); @@ -433,6 +449,8 @@ public class JGYUtils { blackApp.add(appground); } } + Log.e(TAG, "setAppinsideWeb: whiteApp: " + whiteApp); + Log.e(TAG, "setAppinsideWeb: blackApp: " + blackApp); setWhiteApp(whiteApp); setBlackApp(blackApp); } @@ -446,27 +464,13 @@ public class JGYUtils { } public static final String JGY_APPINSIDE_WHITELIST = "JGY_APPINSIDE_WHITELIST"; - public static final String JGY_APPINSIDE_FIRST_WRITE = "JGY_APPINSIDE_FIRST_WRITE"; +// public static final String JGY_APPINSIDE_FIRST_WRITE = "JGY_APPINSIDE_FIRST_WRITE"; @SuppressLint("NewApi") synchronized private void setWhiteApp(List appgrounds) { - int first = (int) SPUtils.get(mContext, JGYUtils.JGY_APPINSIDE_FIRST_WRITE, 0); - if (first == 0) { - for (TTAppground appground : appgrounds) { - if (TextUtils.isEmpty(appground.getAddress())) { - Log.e(TAG, "setWhiteApp: " + "skip: " + appground.getAddress()); - } else { - addPackage(appground.getPackages()); - addToWhitelist(appground.getPackages(), appground.getAddress()); - } - } - SPUtils.put(mContext, JGYUtils.JGY_APPINSIDE_FIRST_WRITE, 1); - } else { - List old = getOldWhitelist(); - comparedAppground(old, appgrounds); - setWhiteList(appgrounds); - } - + List old = getOldWhitelist(); + comparedAppground(old, appgrounds); + setWhiteList(appgrounds); } synchronized private void comparedAppground(List oldAppgrounds, List newAppgrounds) { @@ -514,6 +518,8 @@ public class JGYUtils { private void addAppground(List appgroundList) { for (TTAppground appground : appgroundList) { addPackage(appground.getPackages()); + //删除空的,旧版本使用这个清除 + deleteWhitelistUrl(appground.getPackages(), "Invalid"); addToWhitelist(appground.getPackages(), appground.getAddress()); Log.e("comparedAppground", "addAppground: " + appground.getAddress()); } @@ -560,11 +566,29 @@ public class JGYUtils { return whiteList; } + /** + * @param appgrounds 写入缓存 + */ private void setWhiteList(List appgrounds) { String data = new Gson().toJson(appgrounds); SPUtils.put(mContext, JGY_APPINSIDE_WHITELIST, data); } + public void onBootSetAppInsideWeb() { + List old = getOldWhitelist(); + Log.e(TAG, "onBootSetAppInsideWeb: " + old); + for (TTAppground appground : old) { + if (TextUtils.isEmpty(appground.getAddress())) { + Log.e(TAG, "setWhiteApp: " + "skip: " + appground.getAddress()); + } else { + addPackage(appground.getPackages()); + //删除空的,旧版本使用这个清除 + deleteWhitelistUrl(appground.getPackages(), "Invalid"); + addToWhitelist(appground.getPackages(), appground.getAddress()); + } + } + } + /** * @param pkg 开启app白名单 @@ -592,6 +616,7 @@ public class JGYUtils { if (TextUtils.isEmpty(url)) { continue; } + Log.e(TAG, "addToWhitelist: pkg:" + pkg); Intent intent25 = new Intent(); intent25.setAction("qch_app_setAddAppWhitWebUid"); intent25.putExtra("AddAppWhitWebUidPackage", pkg); @@ -615,8 +640,9 @@ public class JGYUtils { if (TextUtils.isEmpty(url)) { continue; } + Log.e(TAG, "deleteWhitelistUrl: qch_app_setDelAppWhitWebUid" + "pkg: " + pkg + " url: " + url); Intent intent25 = new Intent(); - intent25.setAction("qch_app_setAddAppWhitWebUid"); + intent25.setAction("qch_app_setDelAppWhitWebUid"); intent25.putExtra("DelAppWhitWebUidPackage", pkg); intent25.putExtra("DelAppWhitWebUid", url); intent25.setPackage("com.android.settings"); @@ -641,6 +667,7 @@ public class JGYUtils { * @param appgrounds 设置黑名单管控 */ synchronized private void setBlackApp(List appgrounds) { + Log.e(TAG, "setBlackApp: " + appgrounds); StringBuilder blackList = new StringBuilder(); StringBuilder packageList = new StringBuilder();//单条管控名单 for (TTAppground appground : appgrounds) { @@ -665,7 +692,7 @@ public class JGYUtils { qch_app_website.putExtra("package_name", packageList.toString()); mContext.sendBroadcast(qch_app_website); } else { - sendAllweb(mContext); +// sendAllweb(mContext); } if (blackList.length() > 0) { //app内单个网页地址禁止打开 @@ -675,12 +702,13 @@ public class JGYUtils { intent.putExtra("websitelist", blackList.toString()); mContext.sendBroadcast(intent); } else { - sendwebUrl(mContext); +// sendwebUrl(mContext); } } synchronized private static void sendAllweb(Context context) { + Log.e(TAG, "sendAllweb: "); Intent intent = new Intent("qch_app_website") .setPackage("com.android.settings"); intent.putExtra("package_name", "Invalid"); @@ -688,6 +716,7 @@ public class JGYUtils { } synchronized private static void sendwebUrl(Context context) { + Log.e(TAG, "sendwebUrl: "); Intent intent = new Intent("qch_app_inside_website") .setPackage("com.android.settings"); intent.putExtra("websitelist", "Invalid"); @@ -697,9 +726,10 @@ public class JGYUtils { synchronized public void SettingSysData(String data) { if (TextUtils.isEmpty(data)) { Log.e(TAG, "SettingSysData: " + "data is empty"); - return; + SysSettingUtils.setDisableSetting(mContext); + } else { + SysSettingUtils.setSystemSetting(mContext, data); } - SysSettingUtils.setSystemSetting(mContext, data); } public void writeAppPackageList(Context context, String packageList) { @@ -1026,6 +1056,7 @@ public class JGYUtils { JSONObject jsonObject = new JSONObject(); jsonObject.put("MD5", MD5); Utils.ariaDownload(mContext, url, jsonObject); + Log.e(TAG, "checkBootFile: " + "download file"); } } else { JSONObject jsonObject = new JSONObject(); @@ -1041,7 +1072,9 @@ public class JGYUtils { public void setBootanimation(String filePath) { File systemFile = new File(BOOTANIMATION_PATH); if (!systemFile.exists()) { - systemFile.mkdirs(); + systemFile.getParentFile().mkdirs(); + File file = systemFile.getParentFile(); + Log.e(TAG, "setBootanimation: " + file.getAbsolutePath()); try { systemFile.createNewFile(); } catch (IOException e) { @@ -1066,9 +1099,16 @@ public class JGYUtils { } } } else { + File file = new File(BOOTANIMATION_PATH); + Log.e(TAG, "setBootanimation: " + file.getParentFile().getAbsolutePath()); + Log.e(TAG, "setBootanimation: " + "Is a directory = " + file.isDirectory()); + if (!file.getParentFile().delete()) { + Log.e(TAG, "setBootanimation: " + "系统动画删除失败"); + } Path path = Paths.get(newFile.getAbsolutePath()); try { Files.copy(path, new FileOutputStream(systemFile)); + copy(systemFile.getAbsolutePath(), newFile.getAbsolutePath()); Log.e(TAG, "setBootanimation: 设置新开机动画"); } catch (IOException e) { Log.e(TAG, "setBootanimation: IOException: " + e.getMessage()); @@ -1088,6 +1128,29 @@ public class JGYUtils { } } + public void copy(String oldPath, String newPath) { + try { + int bytesum = 0; + int byteread = 0; + File oldfile = new File(oldPath); + if (oldfile.exists()) { //文件存在时 + InputStream inStream = new FileInputStream(oldPath); //读入原文件 + FileOutputStream fs = new FileOutputStream(newPath); + byte[] buffer = new byte[1444]; + int length; + while ((byteread = inStream.read(buffer)) != -1) { + bytesum += byteread; //字节数文件大小 + System.out.println(bytesum); + fs.write(buffer, 0, byteread); + } + inStream.close(); + } + } catch (Exception e) { + Log.e(TAG, "setBootanimation: " + e.getMessage()); + e.printStackTrace(); + } + } + public void setDeveloperOptions(int state) { if (!BuildConfig.DEBUG) { Settings.System.putInt(mContext.getContentResolver(), "qch_Developeroptions", state); diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java b/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java index 1d57b7d..36589d9 100644 --- a/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java +++ b/app/src/main/java/com/mjsheng/myappstore/utils/SysSettingUtils.java @@ -1,5 +1,6 @@ package com.mjsheng.myappstore.utils; +import android.annotation.SuppressLint; import android.app.StatusBarManager; import android.bluetooth.BluetoothAdapter; import android.content.Context; @@ -13,6 +14,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.mjsheng.myappstore.BuildConfig; +import com.mjsheng.myappstore.action.JGYActions; import java.util.ArrayList; import java.util.List; @@ -48,7 +50,9 @@ public class SysSettingUtils { setIcon(context, jsonObject); setCanReset(context, jsonObject); setAutoTime(context, jsonObject); - setStatusBar(context, jsonObject); + JSONObject navJson = jsonObject.getJSONObject("setting_nav"); + SPUtils.put(context, JGYActions.ACTION_StatusBar_STATUS, jsonObject.getJSONObject("setting_nav").toJSONString()); + setStatusBar(context, navJson); //otg开关 // int setting_otg = changeNum(jsonObject.getInteger("setting_otg")); // Log.e("SystemSetting", "setting_otg---------" + setting_otg); @@ -82,6 +86,7 @@ public class SysSettingUtils { setCanReset(context, 1); setAutoTime(context, 1); JGYUtils.getInstance().setDeveloperOptions(1); + setStatusBar(context, 1); } /** @@ -123,21 +128,29 @@ public class SysSettingUtils { } private static void setPhoneList(Context context, JSONObject jsonObject) { + Log.e(TAG, "setPhoneList: " + jsonObject.toJSONString()); try { //设置电话功能,电话白名单 + //电话通话开关 int setting_call = changeNum(jsonObject.getInteger("setting_call")); boolean qch_call_forbid = Settings.System.putInt(context.getContentResolver(), "qch_call_forbid", setting_call); Log.e("SystemSetting", "qch_call_forbid:" + qch_call_forbid); - + //电话白名单开关 int setting_phone = changeNum(jsonObject.getInteger("setting_phone")); boolean qch_white_list_on = Settings.System.putInt(context.getContentResolver(), "qch_white_list_on", setting_phone); Log.e("SystemSetting", "qch_white_list_on:" + qch_white_list_on); - - String setting_phones = jsonObject.getString("setting_phones"); - boolean qch_white_list_Array = Settings.System.putString(context.getContentResolver(), "qch_white_list_Array", setting_phones); - // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); - Log.e("SystemSetting", "qch_white_list_Array:" + qch_white_list_Array + "---" + setting_phones); - + //白名单列表 + if (setting_phone == 1) { + boolean qch_white_list_Array = Settings.System.putString(context.getContentResolver(), "qch_white_list_Array", "empty"); + // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); + Log.e("SystemSetting", "qch_white_list_Array:" + qch_white_list_Array); + } else { + String setting_phones = jsonObject.getString("setting_phones"); + boolean qch_white_list_Array = Settings.System.putString(context.getContentResolver(), "qch_white_list_Array", setting_phones); + // ToastTool.show("qch_call_forbid::"+setting_call+"----setting_phones::"+setting_phones+"----"+qch_white_list_Array+"---"+qch_call_forbid); + Log.e("SystemSetting", "qch_white_list_Array:" + qch_white_list_Array + "---" + setting_phones); + } + //存储卡 int setting_memory = changeNum(jsonObject.getInteger("setting_memory")); boolean qch_sdcard_forbid_on = Settings.System.putInt(context.getContentResolver(), "qch_sdcard_forbid_on", setting_memory); Log.e("SystemSetting", "qch_sdcard_forbid_on:" + qch_sdcard_forbid_on); @@ -649,24 +662,24 @@ public class SysSettingUtils { context.sendBroadcast(intent); } - - private static void setStatusBar(Context context, JSONObject jsonObject) { - JSONObject navJson = jsonObject.getJSONObject("setting_nav"); - if (null != navJson) { - int whole = navJson.getInteger("whole"); + @SuppressLint("NewApi") + public static void setStatusBar(Context context, JSONObject jsonObject) { + Log.e(TAG, "setStatusBar: " + jsonObject.toJSONString()); + if (null != jsonObject) { + int whole = jsonObject.getInteger("whole"); if (whole == 1) { setStatusBar(context, 0); } else { List disableWhat = new ArrayList<>(); - int home = navJson.getInteger("home"); + int home = jsonObject.getInteger("home"); if (home == 0) { disableWhat.add(StatusBarManager.DISABLE_HOME); } - int returnKey = navJson.getInteger("returnKey"); + int returnKey = jsonObject.getInteger("returnKey"); if (returnKey == 0) { disableWhat.add(StatusBarManager.DISABLE_BACK); } - int taskbar = navJson.getInteger("taskbar"); + int taskbar = jsonObject.getInteger("taskbar"); if (taskbar == 0) { disableWhat.add(StatusBarManager.DISABLE_RECENT); } @@ -683,9 +696,13 @@ public class SysSettingUtils { } } + @SuppressLint("NewApi") private static void setStatusBar(Context context, int state) { + Log.e(TAG, "setStatusBar: " + "default"); StatusBarManager mStatusBarManager = (StatusBarManager) context.getSystemService(Context.STATUS_BAR_SERVICE); + mStatusBarManager.disable(StatusBarManager.DISABLE_BACK | StatusBarManager.DISABLE_RECENT | StatusBarManager.DISABLE_HOME); mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);//显示隐藏的虚拟按键 + } } diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/URLUtils.java b/app/src/main/java/com/mjsheng/myappstore/utils/URLUtils.java index bb6824c..19b6dd3 100644 --- a/app/src/main/java/com/mjsheng/myappstore/utils/URLUtils.java +++ b/app/src/main/java/com/mjsheng/myappstore/utils/URLUtils.java @@ -40,15 +40,18 @@ public class URLUtils { public void setBrowserWhiteList() { String whiteList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray"); if (TextUtils.isEmpty(whiteList.trim())) { - Log.e(TAG, "getBrowserWhiteList: " + "whiteList is empty"); + Log.e(TAG, "getBrowserWhiteList: " + "oldwhiteList is empty"); } else { - Log.e(TAG, "getBrowserWhiteList: " + "whiteList is : " + whiteList); + Log.e(TAG, "getBrowserWhiteList: " + "oldwhiteList is : " + whiteList); HashSet URLList = new HashSet<>(Arrays.asList(whiteList.split(","))); Observable.create(new ObservableOnSubscribe() { @Override public void subscribe(ObservableEmitter emitter) throws Exception { baseURLList.clear(); for (String url : URLList) { + if (TextUtils.isEmpty(url)) { + continue; + } // if (url.startsWith("http://")) { // String noHttp = url.substring(7); // if (!baseURLList.contains(noHttp)) { @@ -74,7 +77,7 @@ public class URLUtils { emitter.onNext(getOkHttpURL("http://" + url)); baseURLList.add("https://" + url); emitter.onNext(getOkHttpURL("https://" + url)); - } else if (getCount(url, ".") == 1) {//不带www的顶级域名 + } else if (getCount(url, ".") == 1 && getCount(url, ":") == 0) {//不带www的顶级域名 baseURLList.add("http://www." + url); emitter.onNext(getOkHttpURL("http://www." + url)); baseURLList.add("https://www." + url); @@ -89,6 +92,7 @@ public class URLUtils { baseURLList.add("https://" + url); emitter.onNext(getOkHttpURL("https://" + url)); } else { +// Log.e(TAG, "subscribe: 0:" + url); baseURLList.add(url); if (!TextUtils.isEmpty(url)) { emitter.onNext(getOkHttpURL(url)); @@ -216,7 +220,7 @@ public class URLUtils { } } catch (IOException e) { e.printStackTrace(); - Log.e(TAG, "getOkHttpURL: " + e.getMessage()); + Log.e(TAG, "getOkHttpURL: " + e.getMessage() + " : " + URL); return ""; } } diff --git a/app/src/main/res/drawable-hdpi/locked.png b/app/src/main/res/drawable-hdpi/locked.png index 40173736b7429fda3406da1c066a3261eb23b851..b303f8e25f16eef4a8ec7ff576984e836e2e67e8 100644 GIT binary patch delta 2002 zcmZ{ldpOgJAIGmYd9{|Fj9u1lez3i zjd2vZJe|rVQIhLIDQu-eE`|E_d!Fh&;r0{o)>t%}=!C~(h&UUo{dj^4!ODr~j6@{G z#Cdqw5l$XE6T^&6AQK#rKO2j%h%mclYtvINtbOGdXE5~qZi=;w0)}xDAK1XDb;3yB@fLF3 z$ho{Ji>OnXJG#;U*SIM;I&sfqdEXgLD1LaB32QUt=SJ7n?&?2tY;>qL(3kD#_~~7^ zsjcuFXRw~~*EcdCnRmHCe5jYeI&JPDX?fVbBSjc!Adtp}$NXql^6z$Q&goch4R^f0 z5PII6r9?QyINcRi#{yzlGIugAZuI>C-t0o1)quaZyw5&zgB7QqU{H3i$*3>d62aK_ zq`Xwtnh)Db25&4O1V7}x>I|OEf|K%8J>CYY zb%y9`(JciF!=SrcY8xjoadQEh4d=Zr);&+ouyrGqcdw7gjsm_Mw&4qt&QJ1ddC$4;6|171A_VIJ$~nr)A3DZB0bmbD>`zm zor5aRb+i@2fYwQFsODHx=rJkK((VDw|!)8MtwMk{(Gg*5GK~ zk|3n6bjerhjT>2jWlttUib?V^&l#q-h9O|(u+LLw##Ow=jry&?tZOM*>J33O`s3?g z&W||!t;cyp(+s^*Vceb<)rkF$htI&5Unt0Ljk$~fj(ujv>oV2(X4N|fT8Lqb^olzF z4CiEPC5L^jLoyyf4K7OBb)8aQ{xMP`YIQS84Y9K&z$~<~SA~02o!1ccF?lMzb?b#( z_U(dGKC?59j?LiSKVFfF?}mizxhp-EIFwXAq!|%u_wALTYTi573|sn_0>1xR=5g_y>P;iC6MotQf&)n=aX8#l!z8b2z!X;oQTX;79Pe)vIL!0wx63YTD{4p}8xrYF9zVg;(>Ej5ej+8qGzWVK)kz3Odl8}SK z&uz@C)m5+3$o9F(a9+krLK5}rQ|dt}U!x~8gm-SV5mP1PP*qoZz$qbqF>P=n8S++8 zg>ln)Gz?z0^wTc_j#3k9BGRW>Z(YR4`)oOliA4kDB5&$u9GN-tAMK{dqQMr|44`o( z{xNd7>EwD#cgVz1l=~yMQFT6+q@7mzYOPr6t`r^q$d@Xa#~%zY&BTTL+0yesg9Ud1 ziw8lMV?nc*zA{LKO3n;AGH_wOzxXOmQCq+aqI0b{`(Cq4K{DmB zR$-*t?B{NLwXfnL$-y-B@s%y$2kV)2_o{Nl!`L9B+!A}sZiix!dwv*nPSI_x{|>x! zMU|PN|Hgz(3%uY>>pdQP@KEX}jQ!E*{^3`(`RKWbcb?Q%pTwn>o{yf_w9LhyW>X=s zNN$X~D5Bd~nCRQ+P|!Hj?0@|`Kpp4$G7Z@(4U{8Sume+&FXyBlC;9+;s_hrg|H+>e zzPCkE74tiD(oj;gZbZclNb za=Qr#V(F@$8bR@*9x%N45}N&iNn#>`&${!cU-pXo_>mx|HPn5{_BC@QSgqp`gIV3o zo@bYg1lnOkLJjf#phMfTXFnb7tQi}HA|_kIZA*DxLEB+C`;OBld++2lmd2!%yzrB8 zFXC1C=|=?P;b7_2N^%NY=oy>1$$gHyK zF)hjE@5A3beC>yG!(n{|(Q%vqU~qJpf*bcOwuqs!4|bK9Nlu7Nfy z**`Y&XXzz{27C-W;&iv~zKQfMpR~y)Gw=Q^|6KpUaPHibCErfl|NrwpM<|?QVzJkU z=1npEP3y1J8{gc2HZkL2mQLG2vBQTp7%VgBQ(fWEr@O4}=!d)`c5SVRiH}6o!rki* z-Yyk7@%;1Uz&Fh1&7YNa?PbVse135KF1~rsQ`0par~K8p*W|vsLusSI3+3N(J_TJx z)4$yo5__uDRs3L!;U1rFw!Cp?p9D2&To262PU@I@aQ9AY<3sfhQ-TE-{b63;@clsl z!L2hNta4x|t=oOz{DX%(p3D5Me3Kee=zldukYAb z@%5nEF{w3%Wvg_K`M$idk-g&8?pqg+M96YR_RMcFC_ngf;V*5a`J7xE*FSs%#@>uPL8>SJEscIsD21oVJEnU@!bQ4^M!pDi_^6?A6P5%bJ_>RFW(JXIRj5lT_Vvm z%Rodx?6Enwao4#6+dWDm=bb*G=d0Q|g+12);PD5ybW*RY)l8|`v}59l7^6zL$3a5N zJUnJBVodHfo~Hd(Na&f$%$Sp(ZC+YDJ?>v0A>xwvnf1)mnG?Tiv=m58JvW>GaCAoa zsgQL?#3qY<_`dGzPN8TXeO0lxS|0X_Z8~lBv%6}2{{GNEz)+gE-_TWDHVRmgwS4w==D$~%_KbO0j&Ku@SU4F`gGva+mcSwi%aegAPz(f0 zGIxCk1*1^bIB8r0lEB}<62megXu%LQGKHCqLIsCu6reZ_La-tzMJf-$J?`$qVWpA~ zTzn9p%vVG}snVz{B@~+_h!ba}iJ1~ySSU7F!!irVAOyr}WIN?5mL>%EPM2k#Tee9! z>^lgO7J~aDsRaHeYy_-?ut7u`K}@Dluyi_+5*S3MQ}9?SnL;Iz%`crm31kJ)S=3Lk z?;o5wno^R?iUA_u$1<-%aH$BQV39~_wVJ4=5n*KtiNa(uEgDoR!HgiNGUW)UA;?ue za|!^Y5-X(&L<-BX7DZ45rz0UabEbckAXCiC%2n@=$$VfW4X7Ydh-6Dib3i`-|3hW6 zd9(_Nf&R?*e+sMOG8GUh22#Q4O0l_d$v&1)3RZ*?0ufjl2g5t(PH|HzjKHc?Sb>d* zrDIpeOXU(+ty=RA&*!svauou~#Sjk&!I>3^QmKT+q%-IMjTs5B1L+hBm&4#t$N<3Q zGHBdL3LRk1aRFGIE`#LA99J^WWs^V1wOB!>Fh>R;r8EPQL@Hq!_Fc&=>4$RxKB)Je zEBRn9OzsD{By%z(OJo15(Q{j7_gJR$wly#2jStDqZdaOZ-FCA?h(g)i=K<_E%|C~e zx;HLmuRKvOnb&Ro5nDx>IUaR=K}2Ueb%$tuvlH5HK(OM?lGUA^S0f|D_PU8$<7JMB zJHCHlp@&tFbAE8iWP1Pj(9v5xElg-1T2B+1ftDkKbT?of4;->DHC&Fxq{&q22r^*qP>sk56h# zblVK8KunCwZ1zDzgMmFUg2FkBx4VnO58OKM%*k+Cr(2~Zc&r#ddvqBkqoJZ{H7BW1 zwtX3WJ038sd?ONwIU+;$gei9CWT}hldraCDmoGo=#eOcX+SepPf7i~LFq9v%*C#Rp zZo0&~xwv*K@@1Yv!f4O%aP*+(g!J4qMUiIg;VSu}Gh4>|hlYj{Ajmg>L`tczuYV1{ z%sDZoWS(np??3$$t&QulZAtne7s!96R)91%Hi~pW%?~NdFqlNYGB6+@0Boqld3pc- zeC=lW1MOEWEmI9B;n=n^3=RXE}agf+Pv?ee35COg@Y&5oaRNBDKzxPQO#+C6_izw^du zw)d{m;j}&1C3f*{IGrjKO0s|G3fG2L za9boECik6A)KC{Z2kFnk?|rhhWnzWmvPj#GIov_bTfVSmOY}Dk$rvqL{> zP3b>f>G)cG^wlwL&5A6n&8UB9)k-(tB1FSrY(S^G3mh9HjKV$94MuC~rm#Q{$J3qR zF$KDdGfhoR7nt5j7vaT|x;G+Q@658=+Lw7+-&YB%7ZhahmnzYA*+O_Bn$pD0x?JZD z;4|w9*LtRHD{q|A?^imCZF+7lbEU3+QSEgz%h=-i^pNSH`tL=TZeG8>lwXKX`x))9 zMA-6ptkLSo(KP~VPfn$)@KsT3V=(!YM=8#U>~Lp&&ep&7Ro>`-^t|!Yaf6n_*qw5M zyu3G;xMj?c^!D`b;3B&thmle zU-fK_0@@N{1zh{SWBO+)>MHb0yixD}KwUmuyzSp6$;s4ZX&|^aidHar5(C1uc^8tt zz0>Qt?#T2dT5``bqg&mAEB%cX)~XP6&XSmF$>GGd_`pS=pX12a?t0!ZrEzwuJ^pMc zxMMcRKiJOk_SLtX97EuCRk3@{%;K6S6SsCHKP&r{`ruoA9YHaO8NK4Kxzvmq-F<(< e+UUc53l^iQ`lg!VY)s!+ZUQ{60BGe1^Zx^dk7s=V literal 0 HcmV?d00001