From edf23945b5504074fc48555a7f81936e1788c6a3 Mon Sep 17 00:00:00 2001
From: Godfather <981964879@qq.com>
Date: Tue, 25 Jan 2022 16:12:36 +0800
Subject: [PATCH] =?UTF-8?q?version:2.1=20fix:=E5=AE=8C=E5=96=84=E6=8E=A8?=
=?UTF-8?q?=E9=80=81=20update:?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 52 +-
app/src/main/AndroidManifest.xml | 466 +++++---
.../aoleyun/sn/activity/CheckNetActivity.java | 11 +-
.../aoleyun/sn/activity/SplashActivity.java | 9 +-
.../sn/activity/{ => main}/MainActivity.java | 18 +-
.../sn/activity/{ => main}/MainContact.java | 4 +-
.../sn/activity/{ => main}/MainPresenter.java | 103 +-
.../com/aoleyun/sn/base/BaseApplication.java | 75 +-
.../com/aoleyun/sn/jpush/ExampleUtil.java | 7 +-
.../sn/jpush/MyJPushMessageReceiver.java | 69 +-
.../com/aoleyun/sn/jpush/MyJPushReceiver.java | 1042 +++++++++++++++++
.../java/com/aoleyun/sn/jpush/MyReceiver.java | 224 ++--
.../com/aoleyun/sn/jpush/PushService.java | 5 +-
.../sn/jpush/TagAliasOperatorHelper.java | 650 +++++-----
.../sn/jpush/invalid/ExampleApplication.java | 5 +-
.../sn/jpush/invalid/TestActivity.java | 5 +-
.../com/aoleyun/sn/network/HTTPInterface.java | 60 +-
.../sn/network/NetInterfaceManager.java | 8 +-
.../sn/network/api/newapi/MACAddressApi.java | 5 +-
.../com/aoleyun/sn/service/MainService.java | 17 +-
.../java/com/aoleyun/sn/tpush/Constants.java | 17 +
.../MessageReceiver.java} | 504 +++++---
.../aoleyun/sn/tpush/common/DBOpenHelper.java | 23 +
.../sn/tpush/common/NotificationService.java | 134 +++
.../aoleyun/sn/tpush/po/XGNotification.java | 83 ++
.../com/aoleyun/sn/utils/ExampleUtil.java | 4 +-
.../java/com/aoleyun/sn/utils/JGYUtils.java | 15 +-
.../main/res/layout-land/activity_main.xml | 2 +-
.../main/res/layout-port/activity_main.xml | 2 +-
app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 8461 -> 2217 bytes
app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 8461 -> 2217 bytes
app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 8461 -> 2217 bytes
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 8461 -> 2217 bytes
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 8461 -> 2217 bytes
app/tpns-configs.json | 14 +
build.gradle | 4 +-
36 files changed, 2692 insertions(+), 945 deletions(-)
rename app/src/main/java/com/aoleyun/sn/activity/{ => main}/MainActivity.java (98%)
rename app/src/main/java/com/aoleyun/sn/activity/{ => main}/MainContact.java (98%)
rename app/src/main/java/com/aoleyun/sn/activity/{ => main}/MainPresenter.java (96%)
create mode 100644 app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java
create mode 100644 app/src/main/java/com/aoleyun/sn/tpush/Constants.java
rename app/src/main/java/com/aoleyun/sn/{receiver/MyJPushReceiver.java => tpush/MessageReceiver.java} (71%)
create mode 100644 app/src/main/java/com/aoleyun/sn/tpush/common/DBOpenHelper.java
create mode 100644 app/src/main/java/com/aoleyun/sn/tpush/common/NotificationService.java
create mode 100644 app/src/main/java/com/aoleyun/sn/tpush/po/XGNotification.java
create mode 100644 app/tpns-configs.json
diff --git a/app/build.gradle b/app/build.gradle
index 628aa0f..aa0f8a8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,4 +1,5 @@
apply plugin: 'com.android.application'
+apply plugin: "com.tencent.android.tpns"
static def appName() {
return "AoleyunDeviceInfo"
@@ -60,14 +61,18 @@ android {
//新平台正式
newly {
flavorDimensions "default"
- versionCode 10
- versionName "1.9"
+ versionCode 12
+ versionName "2.1"
/*********************************极光推送************************************/
manifestPlaceholders = [
- JPUSH_PKGNAME: "com.aoleyun.sn",
- JPUSH_APPKEY : "79c64ef41b8728ad6aa29af1", //JPush上注册的包名对应的appkey.
- JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
- channel_value: "newly",
+ XG_ACCESS_ID : "1500026372",
+ XG_ACCESS_KEY: "AR7A1L5M0LPH",
+
+// JPUSH_PKGNAME: "com.aoleyun.sn",
+// JPUSH_APPKEY : "79c64ef41b8728ad6aa29af1", //JPush上注册的包名对应的appkey.
+// JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
+// channel_value: "newly",
+
]
/*********************************极光推送end************************************/
buildConfigField "String", "ROOT_URL", '"https://led.aoleyun.cn/api/"'
@@ -78,14 +83,16 @@ android {
MTKnewly {
flavorDimensions "default"
- versionCode 1
- versionName "1.0"
+ versionCode 4
+ versionName "1.3"
/*********************************极光推送************************************/
manifestPlaceholders = [
- JPUSH_PKGNAME: "com.aoleyun.sn",
- JPUSH_APPKEY : "79c64ef41b8728ad6aa29af1", //JPush上注册的包名对应的appkey.
- JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
- channel_value: "newly",
+ XG_ACCESS_ID : "1500026372",
+ XG_ACCESS_KEY: "AR7A1L5M0LPH",
+// JPUSH_PKGNAME: "com.aoleyun.sn",
+// JPUSH_APPKEY : "79c64ef41b8728ad6aa29af1", //JPush上注册的包名对应的appkey.
+// JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
+// channel_value: "newly",
]
/*********************************极光推送end************************************/
buildConfigField "String", "ROOT_URL", '"https://led.aoleyun.cn/api/"'
@@ -102,10 +109,12 @@ android {
versionName "1.0"
/*********************************极光推送************************************/
manifestPlaceholders = [
- JPUSH_PKGNAME: "com.aoleyun.sn",
- JPUSH_APPKEY : "79c64ef41b8728ad6aa29af1", //JPush上注册的包名对应的appkey.
- JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
- channel_value: "beta",
+ XG_ACCESS_ID : "1500026372",
+ XG_ACCESS_KEY: "AR7A1L5M0LPH",
+// JPUSH_PKGNAME: "com.aoleyun.sn",
+// JPUSH_APPKEY : "79c64ef41b8728ad6aa29af1", //JPush上注册的包名对应的appkey.
+// JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
+// channel_value: "beta",
]
/*********************************极光推送end************************************/
buildConfigField "String", "ROOT_URL", '"https://led.aoleyun.cn/api/"'
@@ -320,15 +329,16 @@ dependencies {
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
//fastjson
- implementation 'com.alibaba:fastjson:1.2.76'
+ implementation 'com.alibaba:fastjson:1.2.79'
//极光推送
- implementation 'cn.jiguang.sdk:jpush:4.3.0' // 此处以JPush 3.5.6 版本为例。
- implementation 'cn.jiguang.sdk:jcore:2.9.0' // 此处以JCore 2.2.8 版本为例。
+// implementation 'cn.jiguang.sdk:jpush:4.3.0' // 此处以JPush 3.5.6 版本为例。
+// implementation 'cn.jiguang.sdk:jcore:2.9.0' // 此处以JCore 2.2.8 版本为例。
//高德地图定位
implementation 'com.amap.api:location:5.1.0'
//MMKV
- implementation 'com.tencent:mmkv-static:1.2.10'
-
+ implementation 'com.tencent:mmkv-static:1.2.11'
+ //腾讯移动推送 TPNS
+ implementation 'com.tencent.tpns:tpns:1.3.1.1-release'
//RxHttp
implementation 'com.github.liujingxing.rxhttp:rxhttp:2.6.5'
//implementation 'com.squareup.okhttp3:okhttp:4.9.1' //rxhttp v2.2.2版本起,需要手动依赖okhttp
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6766443..946ce72 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,87 +5,108 @@
coreApp="true"
android:sharedUserId="android.uid.system">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+ android:maxSdkVersion="23" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
+
@@ -216,7 +237,8 @@
-
+
+
@@ -228,7 +250,7 @@
@@ -243,9 +265,10 @@
-
+
-
+
+
@@ -268,147 +291,252 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
+
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+ android:name="XG_V2_ACCESS_ID"
+ android:value="1500026372" />
+
+ android:name="XG_V2_ACCESS_KEY"
+ android:value="AR7A1L5M0LPH" />
+
-
-
diff --git a/app/src/main/java/com/aoleyun/sn/activity/CheckNetActivity.java b/app/src/main/java/com/aoleyun/sn/activity/CheckNetActivity.java
index d294fe3..85d3750 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/CheckNetActivity.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/CheckNetActivity.java
@@ -19,6 +19,8 @@ import android.widget.Button;
import android.widget.TextView;
import com.aoleyun.sn.R;
+import com.aoleyun.sn.activity.main.MainContact;
+import com.aoleyun.sn.activity.main.MainPresenter;
import com.aoleyun.sn.base.BaseActivity;
import com.aoleyun.sn.service.MainService;
import com.aoleyun.sn.utils.ApkUtils;
@@ -33,7 +35,6 @@ import com.google.gson.JsonObject;
import butterknife.BindView;
import butterknife.ButterKnife;
-import cn.jpush.android.api.JPushInterface;
import pl.droidsonroids.gif.GifImageView;
public class CheckNetActivity extends BaseActivity implements MainContact.MainView, NetworkUtils.OnNetworkStatusChangedListener {
@@ -69,12 +70,12 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
@Override
public void onDisconnected() {
- Log.e("OnNetworkStatusChangedListener", "onDisconnected: ");
+ Log.e("OnNetworkStatusChanged", "onDisconnected: ");
}
@Override
public void onConnected(NetworkUtils.NetworkType networkType) {
- Log.e("OnNetworkStatusChangedListener", "onConnected: ");
+ Log.e("OnNetworkStatusChanged", "onConnected: ");
timeMillis = SystemClock.elapsedRealtime();
//直接获取数据
mPresenter.getLockedState();
@@ -167,7 +168,7 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
@Override
public void initData() {
- JPushInterface.init(this);
+// JPushInterface.init(this);
registerMessageReceiver();
Log.e("getMacAddress", Utils.getAndroid10MAC(this));
timeMillis = SystemClock.elapsedRealtime();
@@ -219,7 +220,7 @@ public class CheckNetActivity extends BaseActivity implements MainContact.MainVi
}
SaveListUtils.getList();
//获取系统管控
- mPresenter.setJpushTags();
+ mPresenter.setPushTags();
netWorkIsRunning = true;
} else {
netWorkIsRunning = false;
diff --git a/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java b/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java
index 62d4e3a..c7f5ad4 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/SplashActivity.java
@@ -10,7 +10,6 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
-import android.os.PowerManager;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
@@ -25,6 +24,7 @@ import androidx.core.content.ContextCompat;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.R;
import com.aoleyun.sn.action.JGYActions;
+import com.aoleyun.sn.activity.main.MainActivity;
import com.aoleyun.sn.base.BaseApplication;
import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.service.LogcatService;
@@ -42,7 +42,6 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import cn.jpush.android.api.JPushInterface;
public class SplashActivity extends AppCompatActivity {
@@ -131,7 +130,7 @@ public class SplashActivity extends AppCompatActivity {
// Log.i(TAG, "debugTest: iptables = " + CmdUtil.execute("iptables -L -n" ).toString());
Log.i(TAG, "debugTest: " + Utils.getAndroid10MAC(this));
- Log.i(TAG, "debugTest: " + JPushInterface.getRegistrationID(this));
+// Log.i(TAG, "debugTest: " + JPushInterface.getRegistrationID(this));
Log.i(TAG, "debugTest: " + Utils.getCustomVersion());
Log.i(TAG, "debugTest: " + BuildConfig.VERSION_NAME);
Log.i(TAG, "debugTest: " + Utils.getAPPVersionName(PackageNames.APPSTORE, this));
@@ -145,8 +144,8 @@ public class SplashActivity extends AppCompatActivity {
// }
// ActivityManager mAm = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// mAm.killBackgroundProcesses("com.android.documentsui");
- BaseApplication.cleanJpushAlias();
- BaseApplication.cleanJpushTag();
+// BaseApplication.cleanJpushAlias();
+// BaseApplication.cleanJpushTag();
Log.e(TAG, "debugTest: SPUtils all " + SPUtils.getAll(this));
try {
PackageManager packageManager = getPackageManager();
diff --git a/app/src/main/java/com/aoleyun/sn/activity/MainActivity.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java
similarity index 98%
rename from app/src/main/java/com/aoleyun/sn/activity/MainActivity.java
rename to app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java
index 177bb22..b162abe 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/MainActivity.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainActivity.java
@@ -1,4 +1,4 @@
-package com.aoleyun.sn.activity;
+package com.aoleyun.sn.activity.main;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
@@ -33,13 +33,13 @@ import com.aoleyun.sn.utils.SaveListUtils;
import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils;
+import com.tencent.mmkv.MMKV;
import java.util.concurrent.TimeUnit;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
-import cn.jpush.android.api.JPushInterface;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
@@ -171,7 +171,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView,
@Override
public void initData() {
- JPushInterface.init(this);
+// JPushInterface.init(this);
registerMessageReceiver();
Log.e("getMacAddress", Utils.getAndroid10MAC(this));
timeMillis = SystemClock.elapsedRealtime();
@@ -229,7 +229,7 @@ public class MainActivity extends BaseActivity implements MainContact.MainView,
//设置极光推送别名
mPresenter.setJpushAlias();
//设置极光推送标签
- mPresenter.setJpushTags();
+ mPresenter.setPushTags();
Log.e(TAG, "netWorkIsRunning: " + netWorkIsRunning);
Log.e(TAG, "MainService.netWorkIsRunning: " + MainService.netWorkIsRunning);
if (loocked) {
@@ -461,8 +461,6 @@ public class MainActivity extends BaseActivity implements MainContact.MainView,
@Override
public void getDefaultDesktopFinish() {
- netWorkIsRunning = false;
- Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms");
mPresenter.getPoweroffTime();
}
@@ -473,7 +471,9 @@ public class MainActivity extends BaseActivity implements MainContact.MainView,
@Override
public void setWiFiPasswd() {
-
+ MMKV.defaultMMKV().encode(MainPresenter.GET_SETTING_FINISH_TIME, System.currentTimeMillis());
+ netWorkIsRunning = false;
+ Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms");
}
@Override
@@ -595,12 +595,12 @@ public class MainActivity extends BaseActivity implements MainContact.MainView,
@Override
public void onDisconnected() {
- Log.e("OnNetworkStatusChangedListener", "onDisconnected: ");
+ Log.e("OnNetworkStatusChanged", "onDisconnected: ");
}
@Override
public void onConnected(NetworkUtils.NetworkType networkType) {
- Log.e("OnNetworkStatusChangedListener", "onConnected: ");
+ Log.e("OnNetworkStatusChanged", "onConnected: ");
timeMillis = SystemClock.elapsedRealtime();
//直接获取数据
mPresenter.getLockedState();
diff --git a/app/src/main/java/com/aoleyun/sn/activity/MainContact.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainContact.java
similarity index 98%
rename from app/src/main/java/com/aoleyun/sn/activity/MainContact.java
rename to app/src/main/java/com/aoleyun/sn/activity/main/MainContact.java
index 784cbc6..f3d3e41 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/MainContact.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainContact.java
@@ -1,4 +1,4 @@
-package com.aoleyun.sn.activity;
+package com.aoleyun.sn.activity.main;
import android.graphics.Bitmap;
import android.view.View;
@@ -47,7 +47,7 @@ public class MainContact {
void checkTestUpdate();
//开始
//设置极光推送标签
- void setJpushTags();
+ void setPushTags();
//获取开发者选项
void getDeveloper();
//获取设备后台设置
diff --git a/app/src/main/java/com/aoleyun/sn/activity/MainPresenter.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainPresenter.java
similarity index 96%
rename from app/src/main/java/com/aoleyun/sn/activity/MainPresenter.java
rename to app/src/main/java/com/aoleyun/sn/activity/main/MainPresenter.java
index a506b55..db671cd 100644
--- a/app/src/main/java/com/aoleyun/sn/activity/MainPresenter.java
+++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainPresenter.java
@@ -1,4 +1,4 @@
-package com.aoleyun.sn.activity;
+package com.aoleyun.sn.activity.main;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -32,7 +32,6 @@ import com.aoleyun.sn.bean.ForceDownloadData;
import com.aoleyun.sn.bean.LogoImg;
import com.aoleyun.sn.bean.NetAndLaunchBean;
import com.aoleyun.sn.bean.StudentsInfo;
-import com.aoleyun.sn.jpush.TagAliasOperatorHelper;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.network.HTTPInterface;
import com.aoleyun.sn.service.MainService;
@@ -46,6 +45,8 @@ import com.aoleyun.sn.utils.TimeUtils;
import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.URLUtils;
import com.aoleyun.sn.utils.Utils;
+import com.tencent.android.tpush.XGIOperateCallback;
+import com.tencent.android.tpush.XGPushManager;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle2.LifecycleProvider;
import com.trello.rxlifecycle2.android.ActivityEvent;
@@ -55,10 +56,8 @@ import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
-import java.util.Random;
import java.util.Set;
-import cn.jpush.android.api.JPushInterface;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
@@ -66,8 +65,8 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
-import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;
-import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.sequence;
+//import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.ACTION_SET;
+//import static com.aoleyun.sn.jpush.TagAliasOperatorHelper.sequence;
/**
* MainActivity和MainService 的 Presenter
@@ -79,6 +78,8 @@ public class MainPresenter implements MainContact.Presenter {
private MainContact.MainView mView;
private Context mContext;
+ public static final String GET_SETTING_FINISH_TIME = "GET_SETTING_FINISH_TIME";
+
//是否有接口请求成功
public boolean requestSucceeded = false;
private final String DEFAULT_INFO = "暂无信息";
@@ -260,12 +261,18 @@ public class MainPresenter implements MainContact.Presenter {
}
private long lastgetLockedTime;
+ private long one_minute = 1000 * 60;
@Override
public void getLockedState() {
-// if (System.currentTimeMillis() - lastgetLockedTime < 600 * 1000) {
-// return;
-// }
+ MMKV mmkv = MMKV.defaultMMKV();
+ lastgetLockedTime = mmkv.decodeLong(MainPresenter.GET_SETTING_FINISH_TIME);
+ Log.e(TAG, "getLockedState: " + lastgetLockedTime);
+ if (System.currentTimeMillis() - lastgetLockedTime < one_minute) {
+ Log.e(TAG, "getLockedState: lastgetLockedTime = " + lastgetLockedTime);
+ return;
+ }
+
// lastgetLockedTime = System.currentTimeMillis();
NetInterfaceManager.getInstance()
.getDevicesLockedStateObservable()
@@ -553,34 +560,34 @@ public class MainPresenter implements MainContact.Presenter {
@Override
public void setJpushAlias() {
- JPushInterface.init(mContext);
- SetAlias();
- String rid = JPushInterface.getRegistrationID(mContext);
- if (!TextUtils.isEmpty(rid)) {
- Log.e(TAG + ":" + "setJpushAlias", "RegId:" + rid);
- }
- JPushInterface.getAlias(mContext, new Random().nextInt(100));
+// JPushInterface.init(mContext);
+// SetAlias();
+// String rid = JPushInterface.getRegistrationID(mContext);
+// if (!TextUtils.isEmpty(rid)) {
+// Log.e(TAG + ":" + "setJpushAlias", "RegId:" + rid);
+// }
+// JPushInterface.getAlias(mContext, new Random().nextInt(100));
mView.setAliasFinish();
}
- private void SetAlias() {
- TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
- tagAliasBean.action = ACTION_SET;
- sequence++;
- tagAliasBean.alias = Utils.getSerial();
- tagAliasBean.isAliasAction = true;
- TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
- }
+// private void SetAlias() {
+// TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
+// tagAliasBean.action = ACTION_SET;
+// sequence++;
+// tagAliasBean.alias = Utils.getSerial();
+// tagAliasBean.isAliasAction = true;
+// TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
+// }
@Override
- public void setJpushTags() {
+ public void setPushTags() {
NetInterfaceManager.getInstance()
.getJpushTagsObservable()
.compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(new Observer() {
@Override
public void onSubscribe(@NonNull Disposable d) {
- Log.e(TAG + ":" + "setJpushTags", "onSubscribe: ");
+ Log.e(TAG + ":" + "setPushTags", "onSubscribe: ");
}
@Override
@@ -589,7 +596,7 @@ public class MainPresenter implements MainContact.Presenter {
if (response.code == OK) {
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
String batch = jsonObject.get("batch").getAsString();
- Log.e(TAG + ":" + "setJpushTags", "onNext: " + batch);
+ Log.e(TAG + ":" + "setPushTags", "onNext: " + batch);
if (!TextUtils.isEmpty(batch)) {
mView.setTagsFinish(false);
Set set = new HashSet();
@@ -604,27 +611,39 @@ public class MainPresenter implements MainContact.Presenter {
}
}
});
- setTag(set);
+ Set tagsSet = new HashSet<>(set);
+ XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagsSet, new XGIOperateCallback() {
+ @Override
+ public void onSuccess(Object o, int i) {
+ Log.e("setPushTags", "onSuccess: " + o);
+ }
+
+ @Override
+ public void onFail(Object o, int i, String s) {
+ Log.e("setPushTags", "onFail: " + o);
+ }
+ });
+// setTag(set);
} else {
mView.setTagsFinish(true);
- Log.e(TAG + ":" + "setJpushTags", "onNext: " + "batch empty");
+ Log.e(TAG + ":" + "setPushTags", "onNext: " + "batch empty");
}
} else {
mView.setTagsFinish(true);
- Log.e(TAG + ":" + "setJpushTags", "onNext: " + response.toString());
+ Log.e(TAG + ":" + "setPushTags", "onNext: " + response.toString());
}
}
@Override
public void onError(@NonNull Throwable e) {
- Log.e(TAG + ":" + "setJpushTags", "onError: " + e.getMessage());
+ Log.e(TAG + ":" + "setPushTags", "onError: " + e.getMessage());
mView.setTagsFinish(true);
onComplete();
}
@Override
public void onComplete() {
- Log.e(TAG + ":" + "setJpushTags", "onComplete: ");
+ Log.e(TAG + ":" + "setPushTags", "onComplete: ");
}
});
}
@@ -634,14 +653,14 @@ public class MainPresenter implements MainContact.Presenter {
mView.setJpushPlatformTagsFinish();
}
- private void setTag(Set set) {
- TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
- tagAliasBean.action = ACTION_SET;
- sequence++;
- tagAliasBean.tags = set;
- tagAliasBean.isAliasAction = false;
- TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
- }
+// private void setTag(Set set) {
+// TagAliasOperatorHelper.TagAliasBean tagAliasBean = new TagAliasOperatorHelper.TagAliasBean();
+// tagAliasBean.action = ACTION_SET;
+// sequence++;
+// tagAliasBean.tags = set;
+// tagAliasBean.isAliasAction = false;
+// TagAliasOperatorHelper.getInstance().handleAction(mContext, sequence, tagAliasBean);
+// }
@Override
public void checkStoreUpdate() {
@@ -2043,6 +2062,7 @@ public class MainPresenter implements MainContact.Presenter {
public void getPoweroffTime() {
NetInterfaceManager.getInstance()
.getPoweroffTimeControl()
+ .compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(new Observer>>() {
@Override
public void onSubscribe(Disposable d) {
@@ -2079,6 +2099,7 @@ public class MainPresenter implements MainContact.Presenter {
@Override
public void getWiFiPasswd() {
NetInterfaceManager.getInstance().getWiFiControl()
+ .compose(getProvider().bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(new Observer>>() {
@Override
public void onSubscribe(Disposable d) {
@@ -2101,11 +2122,13 @@ public class MainPresenter implements MainContact.Presenter {
@Override
public void onError(Throwable e) {
Log.e("getWiFiPasswd", "onError: " + e.getMessage());
+ onComplete();
}
@Override
public void onComplete() {
Log.e("getWiFiPasswd", "onComplete: ");
+ mView.setWiFiPasswd();
}
});
}
diff --git a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java
index b292a12..09e0ab9 100644
--- a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java
+++ b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java
@@ -16,7 +16,6 @@ import com.aoleyun.sn.utils.WiFiUtils;
import com.arialyy.aria.core.Aria;
import com.arialyy.aria.core.download.DownloadEntity;
import com.aoleyun.sn.BuildConfig;
-import com.aoleyun.sn.jpush.TagAliasOperatorHelper;
import com.aoleyun.sn.manager.AmapManager;
import com.aoleyun.sn.manager.FileManager;
import com.aoleyun.sn.network.NetInterfaceManager;
@@ -30,6 +29,9 @@ import com.aoleyun.sn.utils.SystemUtils;
import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils;
import com.aoleyun.sn.utils.XAPKUtils;
+import com.tencent.android.tpush.XGIOperateCallback;
+import com.tencent.android.tpush.XGPushConfig;
+import com.tencent.android.tpush.XGPushManager;
import com.tencent.mmkv.MMKV;
import org.jetbrains.annotations.NotNull;
@@ -39,8 +41,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
-import cn.jpush.android.api.JPushInterface;
-import cn.jpush.android.api.JPushMessage;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
@@ -87,6 +87,8 @@ public class BaseApplication extends MultiDexApplication {
private void init() {
String rootDir = MMKV.initialize(this);
Log.e(TAG, "mmkv root: " + rootDir);
+
+ tPushInit();
ToastUtil.init(this);
NetInterfaceManager.init(this);
JGYUtils.init(this);
@@ -99,8 +101,8 @@ public class BaseApplication extends MultiDexApplication {
JGYUtils.getInstance().hookWebView();
// 设置开启日志,发布时请关闭日志
- JPushInterface.setDebugMode(true);
- JPushInterface.requestPermission(this);
+// JPushInterface.setDebugMode(true);
+// JPushInterface.requestPermission(this);
//解锁设备不需要初始化
// 初始化 JPush
//JPushInterface.init(this);
@@ -150,6 +152,37 @@ public class BaseApplication extends MultiDexApplication {
});
}
+ private void tPushInit() {
+ XGPushConfig.enableDebug(this, true);
+ XGPushManager.registerPush(this, new XGIOperateCallback() {
+ @Override
+ public void onSuccess(Object data, int flag) {
+ //token在设备卸载重装的时候有可能会变
+ Log.e("TPush", "注册成功,设备token为:" + data);
+ List accountInfoList = new ArrayList<>();
+ accountInfoList.add(new XGPushManager.AccountInfo(XGPushManager.AccountType.CUSTOM.getValue(), Utils.getSerial()));
+ XGPushManager.upsertAccounts(getAppContext(), accountInfoList, new XGIOperateCallback() {
+ @Override
+ public void onSuccess(Object data, int flag) {
+ Log.e("TPush", "onSuccess, data:" + data + ", flag:" + flag);
+ }
+
+ @Override
+ public void onFail(Object data, int errCode, String msg) {
+ Log.e("TPush", "onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
+ }
+ });
+ }
+
+ @Override
+ public void onFail(Object data, int errCode, String msg) {
+ Log.e("TPush", "注册失败,错误码:" + errCode + ",错误信息:" + msg);
+ }
+ });
+
+
+ }
+
private static void initAliasObservable() {
Log.e(TAG, "initAliasObservable: ");
Observable.create(new ObservableOnSubscribe() {
@@ -232,17 +265,17 @@ public class BaseApplication extends MultiDexApplication {
});
}
- public void onAliasOperatorResult(JPushMessage jPushMessage) {
- if (jPushMessage == null) {
- return;
- }
- int errorCode = jPushMessage.getErrorCode();
- onAliasResult.onResult(errorCode);
- }
+// public void onAliasOperatorResult(JPushMessage jPushMessage) {
+// if (jPushMessage == null) {
+// return;
+// }
+// int errorCode = jPushMessage.getErrorCode();
+// onAliasResult.onResult(errorCode);
+// }
public static void setJpushAlias() {
Log.e("jiguangInterface", "30s后重新设置alias");
- JPushInterface.setAlias(context, TagAliasOperatorHelper.sequence++, Utils.getSerial());
+// JPushInterface.setAlias(context, TagAliasOperatorHelper.sequence++, Utils.getSerial());
}
private static void initTagObservable() {
@@ -341,17 +374,17 @@ public class BaseApplication extends MultiDexApplication {
});
}
- public void onTagOperatorResult(JPushMessage jPushMessage) {
- if (jPushMessage == null) {
- return;
- }
- int errorCode = jPushMessage.getErrorCode();
- onTagResult.onResult(errorCode);
- }
+// public void onTagOperatorResult(JPushMessage jPushMessage) {
+// if (jPushMessage == null) {
+// return;
+// }
+// int errorCode = jPushMessage.getErrorCode();
+// onTagResult.onResult(errorCode);
+// }
public static void setJpushTags() {
Log.e(TAG, "30s后重新设置tags");
- HTTPInterface.setJpushTags(context);
+ HTTPInterface.setPushTags(context);
}
private static OnAliasResult onAliasResult;
diff --git a/app/src/main/java/com/aoleyun/sn/jpush/ExampleUtil.java b/app/src/main/java/com/aoleyun/sn/jpush/ExampleUtil.java
index c7f8b57..1573fc4 100644
--- a/app/src/main/java/com/aoleyun/sn/jpush/ExampleUtil.java
+++ b/app/src/main/java/com/aoleyun/sn/jpush/ExampleUtil.java
@@ -15,7 +15,6 @@ import android.text.TextUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import cn.jpush.android.api.JPushInterface;
public class ExampleUtil {
public static final String PREFS_NAME = "JPUSH_EXAMPLE";
@@ -126,7 +125,7 @@ public class ExampleUtil {
}
}
- public static String getDeviceId(Context context) {
- return JPushInterface.getUdid(context);
- }
+// public static String getDeviceId(Context context) {
+// return JPushInterface.getUdid(context);
+// }
}
diff --git a/app/src/main/java/com/aoleyun/sn/jpush/MyJPushMessageReceiver.java b/app/src/main/java/com/aoleyun/sn/jpush/MyJPushMessageReceiver.java
index 1065aa0..07489b5 100644
--- a/app/src/main/java/com/aoleyun/sn/jpush/MyJPushMessageReceiver.java
+++ b/app/src/main/java/com/aoleyun/sn/jpush/MyJPushMessageReceiver.java
@@ -4,43 +4,40 @@ import android.content.Context;
import com.aoleyun.sn.base.BaseApplication;
-import cn.jpush.android.api.CustomMessage;
-import cn.jpush.android.api.JPushMessage;
-import cn.jpush.android.service.JPushMessageReceiver;
/**
* 自定义JPush message 接收器,包括操作tag/alias的结果返回(仅仅包含tag/alias新接口部分)
* */
-public class MyJPushMessageReceiver extends JPushMessageReceiver {
-
- @Override
- public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
- TagAliasOperatorHelper.getInstance().onTagOperatorResult(context,jPushMessage);
- super.onTagOperatorResult(context, jPushMessage);
- BaseApplication.getInstance().onTagOperatorResult(jPushMessage);
- }
- @Override
- public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){
- TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context,jPushMessage);
- super.onCheckTagOperatorResult(context, jPushMessage);
- }
- @Override
- public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
- TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context,jPushMessage);
- super.onAliasOperatorResult(context, jPushMessage);
- BaseApplication.getInstance().onAliasOperatorResult(jPushMessage);
- }
-
- @Override
- public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
- TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context,jPushMessage);
- super.onMobileNumberOperatorResult(context, jPushMessage);
- }
-
- @Override
- public void onMessage(Context context, CustomMessage customMessage) {
- super.onMessage(context, customMessage);
- }
-
-
-}
+//public class MyJPushMessageReceiver extends JPushMessageReceiver {
+//
+// @Override
+// public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
+// TagAliasOperatorHelper.getInstance().onTagOperatorResult(context,jPushMessage);
+// super.onTagOperatorResult(context, jPushMessage);
+// BaseApplication.getInstance().onTagOperatorResult(jPushMessage);
+// }
+// @Override
+// public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){
+// TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context,jPushMessage);
+// super.onCheckTagOperatorResult(context, jPushMessage);
+// }
+// @Override
+// public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
+// TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context,jPushMessage);
+// super.onAliasOperatorResult(context, jPushMessage);
+// BaseApplication.getInstance().onAliasOperatorResult(jPushMessage);
+// }
+//
+// @Override
+// public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) {
+// TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context,jPushMessage);
+// super.onMobileNumberOperatorResult(context, jPushMessage);
+// }
+//
+// @Override
+// public void onMessage(Context context, CustomMessage customMessage) {
+// super.onMessage(context, customMessage);
+// }
+//
+//
+//}
diff --git a/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java b/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java
new file mode 100644
index 0000000..f0d8691
--- /dev/null
+++ b/app/src/main/java/com/aoleyun/sn/jpush/MyJPushReceiver.java
@@ -0,0 +1,1042 @@
+package com.aoleyun.sn.jpush;
+
+import android.annotation.SuppressLint;
+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.media.AudioManager;
+import android.media.MediaPlayer;
+import android.os.BatteryManager;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.amap.api.location.AMapLocation;
+import com.amap.api.location.AMapLocationClient;
+import com.amap.api.location.AMapLocationListener;
+import com.aoleyun.sn.action.JGYActions;
+import com.aoleyun.sn.base.BaseApplication;
+import com.aoleyun.sn.bean.BaseResponse;
+import com.aoleyun.sn.bean.RemoteDebug;
+import com.aoleyun.sn.R;
+import com.aoleyun.sn.manager.AmapManager;
+import com.aoleyun.sn.utils.CacheUtils;
+import com.aoleyun.sn.utils.JGYUtils;
+import com.aoleyun.sn.comm.CommonDatas;
+import com.aoleyun.sn.network.NetInterfaceManager;
+import com.aoleyun.sn.network.HTTPInterface;
+import com.aoleyun.sn.service.MainService;
+import com.aoleyun.sn.utils.ApkUtils;
+import com.aoleyun.sn.utils.CmdUtil;
+import com.aoleyun.sn.utils.ForegroundAppUtil;
+import com.aoleyun.sn.utils.MySQLData;
+import com.aoleyun.sn.utils.SPUtils;
+import com.aoleyun.sn.utils.SaveListUtils;
+import com.aoleyun.sn.utils.ServiceAliveUtils;
+import com.aoleyun.sn.utils.ToastUtil;
+import com.aoleyun.sn.utils.Utils;
+import com.arialyy.aria.core.Aria;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import java.io.File;
+import java.lang.reflect.Type;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+import io.reactivex.Observable;
+import io.reactivex.ObservableEmitter;
+import io.reactivex.ObservableOnSubscribe;
+import io.reactivex.Observer;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+
+public class MyJPushReceiver extends BroadcastReceiver {
+ private static final String TAG = MyJPushReceiver.class.getSimpleName();
+
+ //删除应用
+ private final String MSG_DELETE = "1";
+ //系统设置管控
+ private final String MSG_SETTING = "2";
+ //浏览器网址管控
+ private final String MSG_BROWSER = "4";
+ //app id管控
+ private final String MSG_APPID = "5";
+ //应用联网管控
+ private final String MSG_NET_CONTROL = "6";
+ //APP自启联网滑动管控
+ private final String MSG_POWER_ON = "7";
+ //重置
+ private final String MSG_RESET = "8";
+ //强制安装
+ private final String MSG_INSTALL = "9";
+ //解锁
+ private final String MSG_LOCK = "10";
+ //旧版相机管控
+ private final String MSG_CAMERA = "11";
+
+ private final String MSG_ONEPACKAGES = "12";
+ //app使用时间
+ private final String GET_APP_USEDTIME = "13";
+ //强制下载
+ private final String GET_FORCEDOWNLOADURL = "14";
+ //主页和书签管控
+ private final String SET_HOMEPAG_TAG = "15";
+ //app内网页管控
+ private final String APP_WEBSITE = "16";
+ //禁止app升级
+ private final String DISABLE_APPUPDATE = "17";
+ //隐藏桌面图标
+ private final String HIDE_DESKTOP_ICON = "18";
+ //禁止滑动
+ private final String DISABLE_APP_SLIDE = "19";
+ //更新引用白名单
+ private final String UPDATE_INFO = "20";
+ //截图
+ private final String SN_SCREENSHOT = "21";
+ //重启
+ private final String DEVICES_REBOOT = "22";
+ //获取设备详细信息
+ private final String GET_DEVICES_INFO = "23";
+ //霸屏
+ private final String LOCK_SCREEN = "24";
+ //取消霸屏
+ private final String UNLOCK_SCREEN = "25";
+ //结束进程
+ private final String KILL_SERVER = "26";
+ //时间管控
+ private final String TIME_CONTROL = "27";
+ //app霸屏
+ private final String TOP_APP = "28";
+ //开机动画
+ private final String LOGO_IMG = "29";
+ //默认应用
+ private final String DEFAULTP_APP = "30";
+ //发出声音
+ private final String PLAY_SOUND = "31";
+ //清除app数据
+ private final String CLEAN_APP_CACHE = "32";
+ //开发人员选项
+ private final String DEVELOPER_OPTIONS = "33";
+ //全局更新
+ private final String GLOBAL_UPDATE = "34";
+ //电子书包激活码
+ private final String EBAG_CODE = "35";
+ //更新白名单
+ private final String UPDATE_WHITELIST = "36";
+ //更换批次不恢复出厂
+ private final String UPDATE_BATCH = "37";
+ //添加wifi
+ private final String UPDATE_WIFI_PW = "38";
+ //远程关机
+ private final String DEVICES_POWEROFF = "41";
+ //远程log
+ private final String SN_RUN_LOG = "43";
+ //自定义指令
+ private final String CUSTOM_ORDER = "44";
+
+ private Context mContext;
+
+ private int changeNum(int paramInt) {
+ return paramInt == 0 ? 1 : 0;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ mContext = context;
+// Bundle bundle = intent.getExtras();
+// if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
+// String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
+// Log.e(TAG, "[MyReceiver] 接收Registration Id : " + regId);
+// //send the Registration Id to your server...
+// } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
+// // ToastTool.show("[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE)
+// // + "---" + bundle.getString(JPushInterface.EXTRA_TITLE) + "---" + bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE)
+// // + "---" + bundle.getString(JPushInterface.EXTRA_EXTRA) + "----" + bundle.getString("package_name"));
+// // Log.e(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE)
+// // + "---" + bundle.getString(JPushInterface.EXTRA_TITLE) + "---" + bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE)
+// // + "---" + bundle.getString(JPushInterface.EXTRA_EXTRA) + "----" + bundle.getString("package_name"));
+// processCustomMessage(context, bundle);//屏蔽推送
+// } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
+// Log.e(TAG, "[MyReceiver] 接收到推送下来的通知" + bundle.getString(JPushInterface.EXTRA_EXTRA));
+// // doDownloadAndInstall(bundle.getString(JPushInterface.EXTRA_EXTRA));
+// // Log.e(getBatteryLevel()+"-0-iweroiwerewefeerer-----------");
+// int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
+// Log.e(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + notifactionId);
+// } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
+// Log.e(TAG, "[MyReceiver] 用户点击打开了通知");
+// } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
+// Log.e(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
+// //在这里根据 JPushInterface.EXTRA_EXTRA 的内容处理代码,比如打开新的Activity, 打开一个网页等..
+// } else if (JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
+// boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
+// Log.i(TAG, "[MyReceiver]" + intent.getAction() + " connected state change to " + connected);
+// } else {
+// Log.e(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
+// }
+ }
+
+// private void processCustomMessage(final Context context, Bundle bundle) {
+//// String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
+//// String title = bundle.getString(JPushInterface.EXTRA_TITLE);
+//// String type = bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE);
+//// String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
+//// String package_name = bundle.getString("package_name");
+//
+// Log.e(TAG, "message::" + message + "--type::" + type + "--title::" + title + "--extras::" + extras);
+// switch (message) {
+// default:
+// break;
+// case MSG_DELETE:
+// ToastUtil.betaShow("收到管控:应用删除");
+// if (!TextUtils.isEmpty(title)) {
+// if (SaveListUtils.getlist().contains(title)) {
+// SaveListUtils.getlist().remove(title);
+// }
+// SaveListUtils.sendForceAPP(mContext);
+// ApkUtils.UninstallAPP(mContext, title);
+// }
+// HTTPInterface.getAppLimit(context);
+// HTTPInterface.getNetAndLaunchSetting(mContext);
+// break;
+// case MSG_SETTING:
+// ToastUtil.betaShow("收到管控:系统设置");
+// if (!TextUtils.isEmpty(extras)) {
+// JGYUtils.getInstance().SettingSysData(extras);
+// }
+// break;
+// case MSG_BROWSER:
+// ToastUtil.betaShow("收到管控:浏览器网址管控");
+// getDeselectBrowerID();
+// break;
+// case MSG_APPID:
+// ToastUtil.betaShow("收到管控:APP ID管控");
+// getDeselectID();
+// break;
+// case MSG_NET_CONTROL:
+// ToastUtil.betaShow("收到管控:应用联网管控");
+// settingNetControl(extras);
+// break;
+// case MSG_POWER_ON:
+// ToastUtil.betaShow("收到管控:应用自启管控");
+// settingPowerOn(extras);
+// break;
+// case MSG_RESET:
+// ToastUtil.betaShow("收到管控:设备重置");
+// Utils.doMasterClear(mContext);
+// break;
+// case MSG_INSTALL:
+// ToastUtil.betaShow("收到管控:应用安装");
+// HTTPInterface.getAppLimit(context);
+// doDownloadAndInstall(extras);
+// HTTPInterface.setHideDesktopIcon(mContext);
+// break;
+// case MSG_LOCK:
+// ToastUtil.betaShow("收到管控:设备锁定");
+// settingLock(extras);
+// break;
+// case MSG_CAMERA:
+// ToastUtil.betaShow("收到管控:相机管控");
+// settingCamera(extras);
+// break;
+// case MSG_ONEPACKAGES:
+// ToastUtil.betaShow("收到管控:");
+// if (BaseApplication.getInstance().isFinished()) {
+// settingOneNet(extras);
+// }
+// break;
+// case GET_APP_USEDTIME:
+// ToastUtil.betaShow("收到管控:获取应用使用时间");
+// JSONObject jsonObject = JSON.parseObject(extras);
+// String random = jsonObject.getString("random");
+// String sendType = jsonObject.getString("type");
+// BaseApplication.sendAppUsedTime(random, sendType);
+// break;
+// case GET_FORCEDOWNLOADURL:
+// ToastUtil.betaShow("收到管控:应用强制安装");
+// File file = new File(JGYUtils.getInstance().getDownLoadPath());
+// if (!file.exists()) {
+// file.mkdirs();
+// }
+// if (TextUtils.isEmpty(extras)) {
+// Log.e(TAG, "settingNetControl extras is null");
+// return;
+// }
+// JSONObject extra = JSON.parseObject(extras);
+// String app_name = extra.getString("app_name");
+// String app_package = extra.getString("package");
+// String url = extra.getString("url");
+// int versionCode = extra.getInteger("version_code");
+// String app_id = extra.getString("app_id");
+// JSONObject packageObj = new JSONObject();
+// packageObj.put("app_name", app_name);
+// packageObj.put("app_package", app_package);
+// packageObj.put("app_id", app_id);
+// Utils.ariaDownload(mContext, url, packageObj);
+// break;
+// case SET_HOMEPAG_TAG:
+// Handler.getMain().postDelayed(new Runnable() {
+// @Override
+// public void run() {
+// try {
+// new CacheUtils().cleanApplicationUserData(mContext, "com.android.browser");
+// } catch (Exception e) {
+// e.printStackTrace();
+// Log.e(TAG, "setHomepagtag: " + e.getMessage());
+// }
+// setHomepagtag(extras);
+// ToastUtil.betaShow("收到管控:浏览器主页书签设置");
+// }
+// }, 2000);
+//
+// break;
+// case APP_WEBSITE:
+// ToastUtil.betaShow("收到管控:APP内部网页管控");
+// setAPPinsideWebsite(extras);
+// break;
+// case DISABLE_APPUPDATE:
+// ToastUtil.betaShow("收到管控:应用禁止更新设置");
+// setDisableUpdateList(extras);
+// break;
+// case HIDE_DESKTOP_ICON:
+// ToastUtil.betaShow("收到管控:隐藏应用设置");
+// Handler.getMain().postDelayed(() -> {
+// //后台发送时数据库未改变,有时候可能获取到的数据时上一次的
+// Log.e(TAG, "run: HIDE_DESKTOP_ICON ");
+// HTTPInterface.setHideDesktopIcon(context);
+// }, 2000);
+// break;
+// case DISABLE_APP_SLIDE:
+// ToastUtil.betaShow("收到管控:应用滑动设置");
+// setDisableSlideList(extras);
+// break;
+// case UPDATE_INFO:
+// ToastUtil.betaShow("收到管控:更新白名单");
+// HTTPInterface.getAppLimit(context);
+// break;
+// case SN_SCREENSHOT:
+// ToastUtil.betaShow("收到管控:设备截图");
+// screenshot(extras);
+// break;
+// case DEVICES_REBOOT:
+// ToastUtil.betaShow("收到管控:设备重启");
+// Utils.rebootDevices(mContext);
+// break;
+// case GET_DEVICES_INFO:
+// ToastUtil.betaShow("收到管控:获取设备信息");
+// if (MainService.mPresenter != null) {
+// MainService.mPresenter.getLockedState();
+// MainService.mPresenter.sendMACAddress();
+// Log.e(TAG, "mPresenter: " + "getLockedState");
+// } else {
+// Log.e(TAG, "mPresenter is NULL");
+// }
+// AMapLocationClient aMapLocationClient = AmapManager.getInstance().getLocationClient();
+// aMapLocationClient.stopLocation();
+// aMapLocationClient.startLocation();
+// aMapLocationClient.setLocationListener(new AMapLocationListener() {
+// @Override
+// public void onLocationChanged(AMapLocation aMapLocation) {
+// StringBuilder sb = new StringBuilder();
+// //errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明
+// if (aMapLocation.getErrorCode() == 0) {
+// Log.e(TAG, "onLocationChanged: " + "定位成功");
+// Log.e(TAG, "onLocationChanged: " + aMapLocation.getAddress());
+// sb.append(aMapLocation.getAddress()).append("\n");
+// SPUtils.put(mContext, "AmapAddress", aMapLocation.getAddress());
+// SPUtils.put(mContext, "longitude", aMapLocation.getLongitude());
+// SPUtils.put(mContext, "latitude", aMapLocation.getLatitude());
+// } else {
+// //定位失败
+// sb.append("定位失败" + "\n");
+// SPUtils.put(mContext, "AmapError", String.valueOf(aMapLocation.getErrorCode()));
+// }
+// Log.e(TAG, (String) SPUtils.get(mContext, "AmapAddress", "-"));
+// Log.e(TAG, (String) SPUtils.get(mContext, "AmapError", "-"));
+// Log.e(TAG, "amap: " + sb.toString());
+// HTTPInterface.updateDeviceInfo(mContext);
+// }
+// });
+// break;
+// case LOCK_SCREEN:
+// ToastUtil.betaShow("收到管控:屏幕锁定");
+// JSONObject lockJSONObject = JSON.parseObject(extras);
+// String name = lockJSONObject.getString("name");
+// setLock_screen(1, context, name);
+// break;
+// case UNLOCK_SCREEN:
+// ToastUtil.betaShow("收到管控:屏幕解锁");
+// setLock_screen(0, context, "");
+// break;
+// case KILL_SERVER:
+// ToastUtil.betaShow("收到管控:停止应用");
+// JSONObject killJSONObject = JSON.parseObject(extras);
+// String packages = killJSONObject.getString("package_name");
+// JGYUtils.getInstance().killBackgroundProcesses(context, packages);
+// break;
+// case TIME_CONTROL:
+// ToastUtil.betaShow("收到管控:使用时间管控");
+// getTimeControl(context, extras);
+// break;
+// case TOP_APP:
+// ToastUtil.betaShow("收到管控:应用霸屏");
+// getTopApp(context, extras);
+// break;
+// case LOGO_IMG:
+// ToastUtil.betaShow("收到管控:开机动画设置");
+// setBootanimation(context, extras);
+// Log.e(TAG, "processCustomMessage: " + extras);
+// break;
+// case DEFAULTP_APP:
+// ToastUtil.betaShow("收到管控:");
+// setDefalutApp(context, extras);
+// break;
+// case PLAY_SOUND:
+// ToastUtil.betaShow("收到管控:查找设备");
+// playSound(context, extras);
+// break;
+// case CLEAN_APP_CACHE:
+// ToastUtil.betaShow("收到管控:应用缓存清除");
+// cleanCache(context, extras);
+// break;
+// case DEVELOPER_OPTIONS:
+// ToastUtil.betaShow("收到管控:开发人员选项管控");
+// setDeveloperoptions(extras);
+// break;
+// case GLOBAL_UPDATE:
+// ToastUtil.betaShow("收到管控:全局更新");
+// GlobalUpdate(extras);
+// break;
+// case EBAG_CODE:
+// ToastUtil.betaShow("收到管控:电子书包激活码");
+// setEbagCode(extras);
+// JGYUtils.getInstance().killBackgroundProcesses(context, "com.jxw.launcher");
+// break;
+// case UPDATE_WHITELIST:
+// ToastUtil.betaShow("收到管控:更新白名单");
+// HTTPInterface.getAppLimit(mContext);
+// break;
+// case UPDATE_BATCH:
+// ToastUtil.betaShow("收到管控:更换批次不恢复出厂设置");
+// Aria.download(this).removeAllTask(true);
+// try {
+// new CacheUtils().cleanApplicationUserData(mContext, "com.android.browser");
+// } catch (Exception e) {
+// e.printStackTrace();
+// Log.e(TAG, "setHomepagtag: " + e.getMessage());
+// }
+// if (MainService.mPresenter != null) {
+// MainService.mPresenter.getLockedState();
+// Log.e("getLockedState", "mPresenter: " + "getLockedState");
+// } else {
+// Log.e("getLockedState", "mPresenter is NULL");
+// }
+// break;
+// case UPDATE_WIFI_PW:
+// HTTPInterface.getWiFiPasswd(context);
+// break;
+// case DEVICES_POWEROFF:
+// HTTPInterface.getPoweroffTime();
+// break;
+// case SN_RUN_LOG:
+// recordLog(context, extras);
+// break;
+// case CUSTOM_ORDER:
+// customOrder(context, extras);
+// break;
+// }
+//
+// }
+
+ private void setLock_screen(int state, Context context, String name) {
+ if (ServiceAliveUtils.isServiceAlive(context)) {
+ context.startService(new Intent(context, MainService.class));
+ }
+ Intent intent = new Intent();
+ intent.putExtra("name", name);
+ if (state == 1) {
+ intent.setAction(MainService.LockScreenReceiver.action_lock);
+ } else if (state == 0) {
+ intent.setAction(MainService.LockScreenReceiver.action_unlock);
+ }
+ context.sendBroadcast(intent);
+ }
+
+ private void doDownloadAndInstall(String jsonString) {
+ File file = new File(JGYUtils.getInstance().getDownLoadPath());
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ if (TextUtils.isEmpty(jsonString)) {
+ Log.e(TAG, "doDownloadAndInstall: extras is null");
+ return;
+ }
+ JSONObject jSONObject = JSON.parseObject(jsonString);
+ String app_name = jSONObject.getString("app_name");
+ String app_package = jSONObject.getString("bg");
+ String app_url = jSONObject.getString("app_url");
+ int app_version_code = jSONObject.getInteger("app_version_code");
+ String app_id = jSONObject.getString("app_id");
+ String MD5 = jSONObject.getString("app_md5");
+ JSONObject packageObj = new JSONObject();
+ packageObj.put("app_name", app_name);
+ packageObj.put("app_package", app_package);
+ packageObj.put("app_id", app_id);
+ packageObj.put("MD5", MD5);
+ Log.e(TAG, "doDownloadAndInstall: app_package:" + app_package);
+ Log.e(TAG, "doDownloadAndInstall: app_url:" + app_url);
+ SaveListUtils.addList(app_package);
+ SaveListUtils.sendForceAPP(mContext);
+ PackageManager pm = mContext.getPackageManager();
+ PackageInfo packageInfo = null;
+ try {
+ packageInfo = pm.getPackageInfo(app_package, 0);
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
+ if (packageInfo == null) {
+ Log.e(TAG, "doDownloadAndInstall: " + app_package + "未安装");
+ if (!SaveListUtils.isDownLoading(app_url)) {
+ Log.e(TAG, "doDownloadAndInstall: " + app_package + "开始下载");
+ Utils.ariaDownload(mContext, app_url, packageObj);
+ }
+ } else {
+ long appVersionCode;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ appVersionCode = packageInfo.getLongVersionCode();
+ } else {
+ appVersionCode = packageInfo.versionCode;
+ }
+ if (app_version_code > appVersionCode) {
+ if (!SaveListUtils.isDownLoading(app_url)) {
+ Utils.ariaDownload(mContext, app_url, packageObj);
+ }
+ } else {
+ Log.e(TAG, "doDownloadAndInstall: " + app_package + "已安装最新版");
+ }
+ }
+ }
+
+ private int getBatteryLevel() {
+ if (Build.VERSION.SDK_INT >= 21) {
+ return ((BatteryManager) this.mContext.getSystemService(Context.BATTERY_SERVICE)).getIntProperty(4);
+ }
+ Intent intent = (new ContextWrapper(this.mContext)).registerReceiver(null, new IntentFilter("android.intent.action.BATTERY_CHANGED"));
+ return intent.getIntExtra("level", -1) * 100 / intent.getIntExtra("scale", -1);
+ }
+
+ private void getDeselectBrowerID() {
+ HTTPInterface.setBrowserBlackList(mContext);//浏览器网址管控
+ }
+
+ private void getDeselectID() {
+ NetInterfaceManager.getInstance().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 setDisableSlideList(String s) {
+ JSONObject jSONObject = JSON.parseObject(s);
+ Log.e("setDisableSlideList", "jSONObject::" + jSONObject.toString());
+ String strban = jSONObject.getString("ban");
+ String strnot = jSONObject.getString("not");
+ String qch_disable_slide = Settings.System.getString(mContext.getApplicationContext().getContentResolver(), "qch_disable_slide");
+ Log.e("fht", "qch_disable_slide::" + qch_disable_slide);
+
+ if (!TextUtils.isEmpty(strban)) {
+ Settings.System.putString(mContext.getContentResolver(), "qch_disable_slide", strban);
+ Log.e("fht", "sendban::" + strban);
+ } else {
+ Settings.System.putString(mContext.getContentResolver(), "qch_disable_slide", "Invalid");
+ }
+ Log.e("fht", "qch_disable_slide::" + Settings.System.getString(mContext.getApplicationContext().getContentResolver(), "qch_disable_slide"));
+ }
+
+ private void setDisableUpdateList(String s) {
+ Log.e("setDisableUpdateList", s);
+ JSONObject jsonObject = JSON.parseObject(s);
+ String ban = jsonObject.getString("ban");
+ String not = jsonObject.getString("not");
+ String[] banList = ban.split(",");
+ String[] notList = not.split(",");
+ boolean b = Utils.writeDisableUpdateList(mContext, banList, notList);
+ HTTPInterface.getAppLimit(mContext);
+ }
+
+ private void settingCamera(String s) {
+ if (TextUtils.isEmpty(s)) {
+ Intent intent = new Intent("qch_camera_forbid").setPackage("com.android.settings");
+ intent.putExtra("camera_package_name", "close");
+ this.mContext.sendBroadcast(intent);
+ Log.e(TAG, "settingNetControl extras is null");
+ return;
+ }
+ JSONObject jSONObject = JSON.parseObject(s);
+ String s1 = jSONObject.getString("ban");
+// String str = jSONObject.optString("not");
+ Log.e("settingCamera", "ban::" + s1);
+// Log.e("settingCamera", "not::" + str);
+ if ("0".equals(s1)) {
+ Intent intent2 = new Intent("qch_camera_forbid").setPackage("com.android.settings");
+// intent2.putExtra("camera_package_name", s1);
+ this.mContext.sendBroadcast(intent2);
+ } else {
+ Intent intent1 = new Intent("qch_camera_open").setPackage("com.android.settings");
+// intent1.putExtra("camera_package_name", str);
+ this.mContext.sendBroadcast(intent1);
+ }
+ }
+
+ private void settingOneNet(String s) {
+ if (TextUtils.isEmpty(s)) {
+ Log.e(TAG, "settingNetControl extras is null");
+// return;
+ }
+ JSONObject jSONObject = JSON.parseObject(s);
+ Log.e("settingOneNet", "jSONObject::" + jSONObject.toString());
+
+ String packages = jSONObject.getString("package");
+ String status = jSONObject.getString("status");
+ }
+
+ private void settingNetControl(String s) {
+ if (TextUtils.isEmpty(s)) {
+ Log.e(TAG, "settingNetControl extras is null");
+ }
+ JSONObject jSONObject = JSON.parseObject(s);
+ Log.e("settingNetControl", "jSONObject::" + jSONObject.toString());
+ String disallow = jSONObject.getString("ban");
+ String allow = jSONObject.getString("not");
+ HashSet disallowApp = new HashSet<>(Arrays.asList(disallow.split(",")));
+ JGYUtils.setAppNetwork(mContext, disallowApp);
+ }
+
+ private void settingPowerOn(String s) {
+ if (TextUtils.isEmpty(s)) {
+ 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: 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);
+ }
+ }
+
+
+ private void writeDeselectBrowserIDtoSystem(String s) {
+ boolean bool = Settings.System.putString(this.mContext.getContentResolver(), "DeselectBrowserArray", s);
+ Log.e("SystemSetting", "DeselectBrowserArray---------" + s);
+ Log.e("SystemSetting", "DeselectBrowserArray---------" + bool);
+ }
+
+ private void setHomepagtag(String s) {
+ HTTPInterface.getHomePageBookmarks(mContext, null);
+ }
+
+ private void setAPPinsideWebsite(String s) {
+ //禁止app内部网页访问,包名用,隔开
+ HTTPInterface.getAppinsideWeb(mContext, new HTTPInterface.GetAppinsideWebCallback() {
+ @Override
+ public void onComplete() {
+ Log.e(TAG, "ononComplete: setAPPinsideWebsite");
+ }
+ });
+ }
+
+ /**
+ * 锁定设备
+ *
+ * @param s
+ */
+ public void settingLock(String s) {
+ if (TextUtils.isEmpty(s)) {
+ Log.e(TAG, "settingLock extras is null");
+ return;
+ }
+ JSONObject jSONObject = JSON.parseObject(s);
+
+ int i = changeNum(jSONObject.getIntValue("lock"));
+ Settings.System.putInt(this.mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, i);
+ Log.e("SystemSetting", "qch_unlock_ipad---------" + i);
+
+ if (getBatteryLevel() >= CommonDatas.MIN_POWER) {
+ Utils.doMasterClear(mContext);
+ } else {
+ MySQLData.SetBooleanData(mContext, CommonDatas.IS_RESET, true);
+ }
+ }
+
+ public void screenshot(String s) {
+ JSONObject jSONObject = JSON.parseObject(s);
+ long createTime = jSONObject.getLong("createTime");
+ if (createTime != 0) {
+ Log.e("createTime", String.valueOf(createTime));
+ doscreenshot(createTime);
+ }
+ }
+
+ public void doscreenshot(final long time) {
+ Observable.create(new ObservableOnSubscribe() {
+ @Override
+ public void subscribe(ObservableEmitter e) throws Exception {
+ String filepath = mContext.getExternalFilesDir("db").getAbsolutePath();
+ int n = CmdUtil.execute("screencap -p " + filepath + File.separator + time + ".db").code;
+ e.onNext(n);
+ }
+ }).subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onNext(Integer integer) {
+ if (integer == 0) {
+ uplaodImage(time);
+ } else {
+ Log.e("doss", "失败");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ Log.e("doss", "Throwable=" + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ private void uplaodImage(long time) {
+ String filepath = mContext.getExternalFilesDir("db").getAbsolutePath();
+// String filepath = mContext.getFileStreamPath("screenshot").getAbsolutePath();
+ //放在app内部data下面
+ File file = new File(filepath + File.separator + time + ".db");
+ //不要直接使用常用图片格式
+ if (!file.exists()) {
+ Log.e("uplaodImage", "File does not exists");
+ return;
+ }
+ //设置图片格式
+// RequestBody requestFile = RequestBody.create(MediaType.parse("image/jpg"), file);
+ //File转RequestBody
+ MediaType mediaType = MediaType.Companion.parse("image/png");
+ RequestBody fileBody = RequestBody.Companion.create(file, mediaType);
+ //设置一个file文件
+ MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), fileBody);
+ Map params = new HashMap<>();
+ params.put("sn", Utils.getSerial());
+ params.put("createtime", String.valueOf(time));
+ NetInterfaceManager.getInstance().getScreenshotApi()
+ .sendScreenshot(params, body)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ Log.e("uplaodImage", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(BaseResponse baseResponse) {
+ Log.e("uplaodImage", "onNext: " + baseResponse.msg);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ Log.e("uplaodImage", "onError: " + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("uplaodImage", "onComplete: ");
+ }
+ });
+ }
+
+ private void getTimeControl(Context context, String extras) {
+ HTTPInterface.getSnTimeControl(context);
+ }
+
+ private void getTopApp(Context context, String extras) {
+ JSONObject jsonObject = JSON.parseObject(extras);
+ String packageName = jsonObject.getString("app_package");
+ if (TextUtils.isEmpty(packageName)) {
+ SPUtils.put(context, ForegroundAppUtil.TOPAPP_KEY, "");
+ ForegroundAppUtil.setTopAppClass(context, "");
+ } else {
+ SPUtils.put(context, ForegroundAppUtil.TOPAPP_KEY, packageName);
+ ForegroundAppUtil.setTopAppClass(context, packageName);
+ ForegroundAppUtil.openTopApp(context);
+ }
+ }
+
+ private void setBootanimation(Context context, String extras) {
+ JSONObject jsonObject = JSONObject.parseObject(extras);
+ int type = jsonObject.getInteger("type");
+ if (type == 1) {
+ String file_url = jsonObject.getString("file_url");
+ String file_md5 = jsonObject.getString("file_md5");
+ JGYUtils.getInstance().checkBootFile(file_url, file_md5);
+ } else {
+ JGYUtils.getInstance().removeBootanimation();
+ }
+ }
+
+ private void setDefalutApp(Context context, String extras) {
+ if (TextUtils.isEmpty(extras)) {
+ JGYUtils.getInstance().setDefaultDesktop("");
+ } else {
+ JSONObject jsonObject = JSON.parseObject(extras);
+ String default_launcher = jsonObject.getString("default_launcher");
+ if (TextUtils.isEmpty(default_launcher)) {
+ JGYUtils.getInstance().setDefaultDesktop("");
+ SPUtils.put(context, "default_launcher", "");
+
+ } else {
+ JGYUtils.getInstance().setDefaultDesktop(default_launcher);
+ SPUtils.put(context, "default_launcher", default_launcher);
+ }
+ }
+ }
+
+ private void playSound(Context context, String extras) {
+ JSONObject jsonObject = JSONObject.parseObject(extras);
+ defaultCallMediaPlayer(context);
+ }
+
+ /**
+ * 播放系统默认来电铃声
+ *
+ * @return MediaPlayer对象
+ * @throws Exception
+ */
+ MediaPlayer mediaPlayer;
+
+ public void defaultCallMediaPlayer(Context context) {
+ if (mediaPlayer != null) {
+ mediaPlayer.stop();
+ mediaPlayer.release();
+ }
+ mediaPlayer = MediaPlayer.create(context, R.raw.test);
+ try {
+// mediaPlayer.prepare();
+ mediaPlayer.setLooping(false);
+ int duration = mediaPlayer.getDuration() / 1000;
+ Log.e(TAG, "defaultCallMediaPlayer: " + "duration: " + duration);
+ int loop = 0;
+ if (duration <= 1) {
+ loop = 30;
+ } else {
+ loop = (30 / duration);
+ }
+ final int[] soundCount = {0};
+ int finalLoop = loop;
+ mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
+ @Override
+ public void onCompletion(MediaPlayer mediaPlayer) {
+ if (soundCount[0] <= finalLoop) {
+ setMaxVolume(context);
+ mediaPlayer.start();
+ soundCount[0] += 1;
+ Log.e(TAG, "onCompletion: " + "loop: " + finalLoop);
+ Log.e(TAG, "onCompletion: " + "soundCount: " + soundCount[0]);
+ } else {
+ mediaPlayer.stop();
+ mediaPlayer.release();
+ Log.e(TAG, "onCompletion: " + "loop: " + finalLoop);
+ Log.e(TAG, "onCompletion: " + "soundCount: " + soundCount[0]);
+ }
+ }
+ });
+ mediaPlayer.setLooping(false);
+ setMaxVolume(context);
+ mediaPlayer.start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ Log.e(TAG, "defaultCallMediaPlayer: " + e.getMessage());
+ }
+
+ }
+
+ private void setMaxVolume(Context context) {
+ AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ int ringMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
+ int musicMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
+ int voiceMax = audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
+ audioManager.setStreamVolume(AudioManager.STREAM_RING, ringMax, 0);
+ audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, voiceMax, 0);
+ audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicMax, 0); //音乐音量
+ audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+ audioManager.setSpeakerphoneOn(true);
+ }
+
+
+ private void cleanCache(Context context, String extras) {
+ JSONObject jsonObject = JSONObject.parseObject(extras);
+ String packageName = jsonObject.getString("app_package");
+ if (TextUtils.isEmpty(packageName)) {
+ Log.e(TAG, "cleanCache: " + "package is empty");
+ } else {
+ try {
+ if (new CacheUtils().cleanApplicationUserData(context, packageName)) {
+ Log.e(TAG, "cleanCache: " + packageName + " success");
+ } else {
+ Log.e(TAG, "cleanCache: " + packageName + " failed");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ Log.e(TAG, "cleanCache: " + e.getMessage());
+ }
+ }
+ }
+
+ private void setDeveloperoptions(String extras) {
+ JSONObject jsonObject = JSONObject.parseObject(extras);
+ int is_developer = jsonObject.getInteger("is_developer");
+ Log.e(TAG + ":" + "getDeveloper", "onNext: " + is_developer);
+ Log.e(TAG, "setDeveloperoptions: " + is_developer);
+ JGYUtils.getInstance().setDeveloperOptions(is_developer == 0 ? 1 : 0);
+ }
+
+ private void GlobalUpdate(String jsonString) {
+ if (TextUtils.isEmpty(jsonString)) {
+ throw new RuntimeException();
+ }
+ JSONObject jsonObject = JSON.parseObject(jsonString);
+ String platform = jsonObject.getString("platform");
+ if (JGYUtils.getInstance().isSamePlatform(platform)) {
+ checkAPPInstall(jsonObject);
+ } else {
+ Log.e(TAG, "GlobalUpdate: " + "应用与app平台不符合");
+ }
+ }
+
+ @SuppressLint("NewApi")
+ private void checkAPPInstall(JSONObject jsonObject) {
+ long version_code = jsonObject.getLong("app_version_code");
+ PackageManager pm = mContext.getPackageManager();
+ PackageInfo packageInfo = null;
+ try {
+ packageInfo = pm.getPackageInfo(jsonObject.getString("app_package"), 0);
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
+ if (packageInfo == null || packageInfo.getLongVersionCode() < version_code) {
+ Utils.ariaDownload(mContext, jsonObject.getString("app_url"), jsonObject);
+ } else {
+ Log.e(TAG, "checkAPPInstall: " + "已经是最新版");
+ }
+ }
+
+ private void setEbagCode(String jsonString) {
+ JSONObject jsonObject = JSON.parseObject(jsonString);
+ String ebagCode = jsonObject.getString("ebagCode");
+ if (TextUtils.isEmpty(ebagCode)) {
+ Log.e(TAG, "setEbagCode: " + "ebagCode is empty");
+ } else {
+ SPUtils.put(mContext, "ebagCode", ebagCode);
+ }
+ }
+
+ private void recordLog(Context context, String jsonString) {
+ HTTPInterface.getRunLog(context);
+ }
+
+ private static final int ACTION_PULL = 1;
+ private static final int ACTION_DELETE = 2;
+ private static final int ACTION_UPGRADE = 3;
+
+ private void customOrder(Context context, String jsonString) {
+ Gson gson = new Gson();
+ Type type = new TypeToken() {
+ }.getType();
+ RemoteDebug remoteDebug = gson.fromJson(jsonString, type);
+ if (remoteDebug != null) {
+ String pkg = remoteDebug.getApp_package();
+ String content = remoteDebug.getContent();
+ switch (remoteDebug.getType()) {
+ case ACTION_PULL:
+ Log.e(TAG, "customOrder: 唤起");
+ ApkUtils.openPackage(context, pkg);
+ break;
+ case ACTION_DELETE:
+ Log.e(TAG, "customOrder: 删除");
+ ApkUtils.UninstallAPP(context, pkg);
+ break;
+ case ACTION_UPGRADE:
+ Log.e(TAG, "customOrder: 更新");
+ HTTPInterface.getForceDownload(context);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/aoleyun/sn/jpush/MyReceiver.java b/app/src/main/java/com/aoleyun/sn/jpush/MyReceiver.java
index d7f6624..b163f2a 100644
--- a/app/src/main/java/com/aoleyun/sn/jpush/MyReceiver.java
+++ b/app/src/main/java/com/aoleyun/sn/jpush/MyReceiver.java
@@ -1,19 +1,5 @@
package com.aoleyun.sn.jpush;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.TextUtils;
-
-import com.aoleyun.sn.activity.MainActivity;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.Iterator;
-
-import cn.jpush.android.api.JPushInterface;
/**
* 自定义接收器
@@ -22,108 +8,108 @@ import cn.jpush.android.api.JPushInterface;
* 1) 默认用户会打开主界面
* 2) 接收不到自定义消息
*/
-public class MyReceiver extends BroadcastReceiver {
- private static final String TAG = "JIGUANG-Example";
-
- @Override
- public void onReceive(Context context, Intent intent) {
- try {
- Bundle bundle = intent.getExtras();
- Logger.d(TAG, "[MyReceiver] onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle));
-
- if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
- String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
- Logger.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
- //send the Registration Id to your server...
-
- } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
- Logger.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE));
- processCustomMessage(context, bundle);
-
- } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
- Logger.d(TAG, "[MyReceiver] 接收到推送下来的通知");
- int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
- Logger.d(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + notifactionId);
-
- } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
- Logger.d(TAG, "[MyReceiver] 用户点击打开了通知");
-
- //打开自定义的Activity
-// Intent i = new Intent(context, TestActivity.class);
-// i.putExtras(bundle);
- //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-// i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
-// context.startActivity(i);
-
- } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
- Logger.d(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
- //在这里根据 JPushInterface.EXTRA_EXTRA 的内容处理代码,比如打开新的Activity, 打开一个网页等..
-
- } else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
- boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
- Logger.w(TAG, "[MyReceiver]" + intent.getAction() +" connected state change to "+connected);
- } else {
- Logger.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
- }
- } catch (Exception e){
-
- }
-
- }
-
- // 打印所有的 intent extra 数据
- private static String printBundle(Bundle bundle) {
- StringBuilder sb = new StringBuilder();
- for (String key : bundle.keySet()) {
- if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
- sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
- }else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){
- sb.append("\nkey:" + key + ", value:" + bundle.getBoolean(key));
- } else if (key.equals(JPushInterface.EXTRA_EXTRA)) {
- if (TextUtils.isEmpty(bundle.getString(JPushInterface.EXTRA_EXTRA))) {
- Logger.i(TAG, "This message has no Extra data");
- continue;
- }
-
- try {
- JSONObject json = new JSONObject(bundle.getString(JPushInterface.EXTRA_EXTRA));
- Iterator it = json.keys();
-
- while (it.hasNext()) {
- String myKey = it.next();
- sb.append("\nkey:" + key + ", value: [" +
- myKey + " - " +json.optString(myKey) + "]");
- }
- } catch (JSONException e) {
- Logger.e(TAG, "Get message extra JSON error!");
- }
-
- } else {
- sb.append("\nkey:" + key + ", value:" + bundle.get(key));
- }
- }
- return sb.toString();
- }
-
- //send msg to MainActivity
- private void processCustomMessage(Context context, Bundle bundle) {
- if (MainActivity.isForeground) {
- String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
- String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
- Intent msgIntent = new Intent(MainActivity.MESSAGE_RECEIVED_ACTION);
- msgIntent.putExtra(MainActivity.KEY_MESSAGE, message);
- if (!ExampleUtil.isEmpty(extras)) {
- try {
- JSONObject extraJson = new JSONObject(extras);
- if (extraJson.length() > 0) {
- msgIntent.putExtra(MainActivity.KEY_EXTRAS, extras);
- }
- } catch (JSONException e) {
-
- }
-
- }
- LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent);
- }
- }
-}
+//public class MyReceiver extends BroadcastReceiver {
+// private static final String TAG = "JIGUANG-Example";
+//
+// @Override
+// public void onReceive(Context context, Intent intent) {
+// try {
+// Bundle bundle = intent.getExtras();
+// Logger.d(TAG, "[MyReceiver] onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle));
+//
+// if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
+// String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
+// Logger.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
+// //send the Registration Id to your server...
+//
+// } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
+// Logger.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE));
+// processCustomMessage(context, bundle);
+//
+// } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
+// Logger.d(TAG, "[MyReceiver] 接收到推送下来的通知");
+// int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
+// Logger.d(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + notifactionId);
+//
+// } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
+// Logger.d(TAG, "[MyReceiver] 用户点击打开了通知");
+//
+// //打开自定义的Activity
+//// Intent i = new Intent(context, TestActivity.class);
+//// i.putExtras(bundle);
+// //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+//// i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
+//// context.startActivity(i);
+//
+// } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
+// Logger.d(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
+// //在这里根据 JPushInterface.EXTRA_EXTRA 的内容处理代码,比如打开新的Activity, 打开一个网页等..
+//
+// } else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
+// boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
+// Logger.w(TAG, "[MyReceiver]" + intent.getAction() +" connected state change to "+connected);
+// } else {
+// Logger.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
+// }
+// } catch (Exception e){
+//
+// }
+//
+// }
+//
+// // 打印所有的 intent extra 数据
+// private static String printBundle(Bundle bundle) {
+// StringBuilder sb = new StringBuilder();
+// for (String key : bundle.keySet()) {
+// if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
+// sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
+// }else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){
+// sb.append("\nkey:" + key + ", value:" + bundle.getBoolean(key));
+// } else if (key.equals(JPushInterface.EXTRA_EXTRA)) {
+// if (TextUtils.isEmpty(bundle.getString(JPushInterface.EXTRA_EXTRA))) {
+// Logger.i(TAG, "This message has no Extra data");
+// continue;
+// }
+//
+// try {
+// JSONObject json = new JSONObject(bundle.getString(JPushInterface.EXTRA_EXTRA));
+// Iterator it = json.keys();
+//
+// while (it.hasNext()) {
+// String myKey = it.next();
+// sb.append("\nkey:" + key + ", value: [" +
+// myKey + " - " +json.optString(myKey) + "]");
+// }
+// } catch (JSONException e) {
+// Logger.e(TAG, "Get message extra JSON error!");
+// }
+//
+// } else {
+// sb.append("\nkey:" + key + ", value:" + bundle.get(key));
+// }
+// }
+// return sb.toString();
+// }
+//
+// //send msg to MainActivity
+// private void processCustomMessage(Context context, Bundle bundle) {
+// if (MainActivity.isForeground) {
+// String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
+// String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
+// Intent msgIntent = new Intent(MainActivity.MESSAGE_RECEIVED_ACTION);
+// msgIntent.putExtra(MainActivity.KEY_MESSAGE, message);
+// if (!ExampleUtil.isEmpty(extras)) {
+// try {
+// JSONObject extraJson = new JSONObject(extras);
+// if (extraJson.length() > 0) {
+// msgIntent.putExtra(MainActivity.KEY_EXTRAS, extras);
+// }
+// } catch (JSONException e) {
+//
+// }
+//
+// }
+// LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent);
+// }
+// }
+//}
diff --git a/app/src/main/java/com/aoleyun/sn/jpush/PushService.java b/app/src/main/java/com/aoleyun/sn/jpush/PushService.java
index 9b6fa99..60cdff7 100644
--- a/app/src/main/java/com/aoleyun/sn/jpush/PushService.java
+++ b/app/src/main/java/com/aoleyun/sn/jpush/PushService.java
@@ -1,7 +1,8 @@
package com.aoleyun.sn.jpush;
-import cn.jpush.android.service.JCommonService;
+//import cn.jpush.android.service.JCommonService;
-public class PushService extends JCommonService {
+public class PushService {
+// extends JCommonService {
}
diff --git a/app/src/main/java/com/aoleyun/sn/jpush/TagAliasOperatorHelper.java b/app/src/main/java/com/aoleyun/sn/jpush/TagAliasOperatorHelper.java
index b74b21c..265095e 100644
--- a/app/src/main/java/com/aoleyun/sn/jpush/TagAliasOperatorHelper.java
+++ b/app/src/main/java/com/aoleyun/sn/jpush/TagAliasOperatorHelper.java
@@ -11,335 +11,333 @@ import com.aoleyun.sn.utils.ToastUtil;
import java.util.Locale;
import java.util.Set;
-import cn.jpush.android.api.JPushInterface;
-import cn.jpush.android.api.JPushMessage;
/**
* 处理tagalias相关的逻辑
* */
public class TagAliasOperatorHelper {
- private static final String TAG = "JIGUANG-TagAliasHelper";
- public static int sequence = 1;
- /**增加*/
- public static final int ACTION_ADD = 1;
- /**覆盖*/
- public static final int ACTION_SET = 2;
- /**删除部分*/
- public static final int ACTION_DELETE = 3;
- /**删除所有*/
- public static final int ACTION_CLEAN = 4;
- /**查询*/
- public static final int ACTION_GET = 5;
-
- public static final int ACTION_CHECK = 6;
-
- public static final int DELAY_SEND_ACTION = 1;
-
- public static final int DELAY_SET_MOBILE_NUMBER_ACTION = 2;
-
- private Context context;
-
- private static TagAliasOperatorHelper mInstance;
- private TagAliasOperatorHelper(){
- }
- public static TagAliasOperatorHelper getInstance(){
- if(mInstance == null){
- synchronized (TagAliasOperatorHelper.class){
- if(mInstance == null){
- mInstance = new TagAliasOperatorHelper();
- }
- }
- }
- return mInstance;
- }
- public void init(Context context){
- if(context != null) {
- this.context = context.getApplicationContext();
- }
- }
- private SparseArray