From 625a121cbb6e975bafe927ed6a6c1e763587aa6a Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Sat, 17 Jun 2023 09:30:06 +0800 Subject: [PATCH] =?UTF-8?q?version:zhanrui=206.4.0=20fix:=20update:?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AndroidManifest-common.xml | 196 ++-------- build.gradle | 48 ++- iconloaderlib/build.gradle | 31 +- ...ndor.mediatek.hardware.nvram-V1.0-java.jar | Bin 0 -> 20915 bytes src/com/aoleyun/os/Launcher.java | 94 ++--- src/com/aoleyun/os/base/BaseApplication.java | 313 +--------------- src/com/aoleyun/os/comm/CommonConfig.java | 6 + .../aoleyun/os/jpush/ExampleApplication.java | 21 -- src/com/aoleyun/os/jpush/ExampleUtil.java | 131 ------- .../os/jpush/LocalBroadcastManager.java | 263 ------------- src/com/aoleyun/os/jpush/Logger.java | 40 -- .../os/jpush/MyJPushMessageReceiver.java | 40 -- src/com/aoleyun/os/jpush/MyReceiver.java | 151 -------- src/com/aoleyun/os/jpush/PushService.java | 6 - .../os/jpush/TagAliasOperatorHelper.java | 344 ------------------ src/com/aoleyun/os/jpush/TestActivity.java | 30 -- src/com/aoleyun/os/model/LoaderTask.java | 4 +- src/com/aoleyun/os/network/HTTPInterface.java | 56 --- .../os/network/NetInterfaceManager.java | 35 +- src/com/aoleyun/os/network/UrlAddress.java | 5 - ...tJpushTagsApi.java => GetPushTagsApi.java} | 4 +- src/com/aoleyun/os/push/PushManager.java | 51 +++ .../push/alipush/AliMessageIntentService.java | 99 +++++ .../push/alipush/AliyunMessageReceiver.java | 116 ++++++ .../os/{ => push}/tpush/Constants.java | 2 +- .../os/{ => push}/tpush/MessageReceiver.java | 35 +- .../{ => push}/tpush/common/DBOpenHelper.java | 2 +- .../tpush/common/NotificationService.java | 4 +- .../{ => push}/tpush/po/XGNotification.java | 2 +- src/com/aoleyun/os/service/MainService.java | 2 +- .../aoleyun/os/touch/ItemClickHandler.java | 14 - src/com/aoleyun/os/uiuiutils/JGYUtils.java | 16 +- src/com/aoleyun/os/uiuiutils/Utils.java | 218 ++++++++++- src/doc/MTKP20S.keystore | Bin 0 -> 2361 bytes 34 files changed, 676 insertions(+), 1703 deletions(-) create mode 100644 libs/vendor.mediatek.hardware.nvram-V1.0-java.jar create mode 100644 src/com/aoleyun/os/comm/CommonConfig.java delete mode 100644 src/com/aoleyun/os/jpush/ExampleApplication.java delete mode 100644 src/com/aoleyun/os/jpush/ExampleUtil.java delete mode 100644 src/com/aoleyun/os/jpush/LocalBroadcastManager.java delete mode 100644 src/com/aoleyun/os/jpush/Logger.java delete mode 100644 src/com/aoleyun/os/jpush/MyJPushMessageReceiver.java delete mode 100644 src/com/aoleyun/os/jpush/MyReceiver.java delete mode 100644 src/com/aoleyun/os/jpush/PushService.java delete mode 100644 src/com/aoleyun/os/jpush/TagAliasOperatorHelper.java delete mode 100644 src/com/aoleyun/os/jpush/TestActivity.java rename src/com/aoleyun/os/network/api/{GetJpushTagsApi.java => GetPushTagsApi.java} (80%) create mode 100644 src/com/aoleyun/os/push/PushManager.java create mode 100644 src/com/aoleyun/os/push/alipush/AliMessageIntentService.java create mode 100644 src/com/aoleyun/os/push/alipush/AliyunMessageReceiver.java rename src/com/aoleyun/os/{ => push}/tpush/Constants.java (93%) rename src/com/aoleyun/os/{ => push}/tpush/MessageReceiver.java (93%) rename src/com/aoleyun/os/{ => push}/tpush/common/DBOpenHelper.java (93%) rename src/com/aoleyun/os/{ => push}/tpush/common/NotificationService.java (98%) rename src/com/aoleyun/os/{ => push}/tpush/po/XGNotification.java (97%) create mode 100644 src/doc/MTKP20S.keystore diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml index 90168ed..2b87f82 100644 --- a/AndroidManifest-common.xml +++ b/AndroidManifest-common.xml @@ -48,6 +48,7 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -487,6 +333,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + diff --git a/build.gradle b/build.gradle index 4da3a6c..83e617d 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,10 @@ buildscript { repositories { google() mavenCentral() - maven { url 'http://developer.huawei.com/repo/' } maven { url "https://jitpack.io" } + maven { url 'http://developer.huawei.com/repo/' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } - maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } + maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' } } dependencies { @@ -67,11 +67,12 @@ android { targetSdkVersion 28 //// //MTK -// versionCode 43 -// versionName "2.3.3" +// versionCode 48 +// versionName "2.3.8" + //cube - versionCode 73 - versionName "6.3.3" + versionCode 80 + versionName "6.4.0" ndk { //选择要添加的对应 cpu 类型的 .so 库。 @@ -116,6 +117,14 @@ android { v1SigningEnabled true v2SigningEnabled true } + + TeclastP20S { + storeFile file("src/doc/MTKP20S.keystore") + storePassword "123456" + keyAlias "MTKP20S" + keyPassword "123456" + v2SigningEnabled false + } } buildTypes { @@ -142,6 +151,20 @@ android { signingConfig signingConfigs.zhanRuiUserdebug } + TeclastP20SDebug.initWith(debug) + TeclastP20SDebug { + debuggable true + versionNameSuffix "-debug" + buildConfigField "String", "platform", '"P20S"' + signingConfig signingConfigs.TeclastP20S + } + + TeclastP20SRelease.initWith(release) + TeclastP20SRelease { + buildConfigField "String", "platform", '"P20S"' + signingConfig signingConfigs.TeclastP20S + } + debug { buildConfigField "String", "platform", '"MTK"' debuggable true @@ -295,13 +318,17 @@ android { repositories { maven { url "../../../prebuilts/fullsdk-darwin/extras/android/m2repository" } maven { url "../../../prebuilts/fullsdk-linux/extras/android/m2repository" } - mavenCentral() google() - jcenter() + mavenCentral() + maven { url "https://jitpack.io" } + maven { url 'http://developer.huawei.com/repo/' } + maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } + maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' } } dependencies { compileOnly files('libs/framework.jar') + implementation files('libs/vendor.mediatek.hardware.nvram-V1.0-java.jar') implementation "androidx.dynamicanimation:dynamicanimation:${ANDROID_X_VERSION}" implementation "androidx.recyclerview:recyclerview:${ANDROID_X_VERSION}" @@ -344,9 +371,8 @@ dependencies { implementation 'com.tencent:mmkv-static:1.2.13' //腾讯移动推送 TPNS implementation 'com.tencent.tpns:tpns:1.3.2.0-release' - //极光推送 -// implementation 'cn.jiguang.sdk:jpush:3.8.6' // 此处以JPush 3.8.6 版本为例。 -// implementation 'cn.jiguang.sdk:jcore:2.6.0' // 此处以JCore 2.6.0 版本为例。 + //阿里云推送 + implementation 'com.aliyun.ams:alicloud-android-push:3.8.0' //下载 implementation 'me.laoyuyu.aria:core:3.8.16' annotationProcessor 'me.laoyuyu.aria:compiler:3.8.16' diff --git a/iconloaderlib/build.gradle b/iconloaderlib/build.gradle index f8a7c00..5aaa96f 100644 --- a/iconloaderlib/build.gradle +++ b/iconloaderlib/build.gradle @@ -13,29 +13,14 @@ android { } buildTypes { - zhanRuiDebug { - minifyEnabled false - } - - zhanRuiRelease { - minifyEnabled false - } - - alldocubeDebug { - minifyEnabled false - } - - alldocubeDebugReleas { - minifyEnabled false - } - - debug { - minifyEnabled false - } - - release { - minifyEnabled false - } + zhanRuiDebug {} + zhanRuiRelease {} + alldocubeDebug {} + alldocubeDebugReleas {} + TeclastP20SDebug {} + TeclastP20SRelease {} + debug {} + release {} } sourceSets { diff --git a/libs/vendor.mediatek.hardware.nvram-V1.0-java.jar b/libs/vendor.mediatek.hardware.nvram-V1.0-java.jar new file mode 100644 index 0000000000000000000000000000000000000000..86849f7430b2286c51fe2a9bcc23204fc675f159 GIT binary patch literal 20915 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

#bU6E|eB~&FxQ~7^jK^llbt*78dB`}&MFW|H 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 { @@ -1292,7 +1295,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, private void checkIsRest() { int desktop_clear = Settings.Global.getInt(getContentResolver(), "desktop_clear", 0); int aihuaUnlock = Settings.Global.getInt(getContentResolver(), "Aihua_unlock_state", 0); - if ((!JGYUtils.getInstance().getDeviceIsLocked()|| aihuaUnlock == 1) && desktop_clear != 1) { + if ((!JGYUtils.getInstance().getDeviceIsLocked() || aihuaUnlock == 1) && desktop_clear != 1) { Settings.Global.putInt(getContentResolver(), "desktop_clear", 1); JGYUtils.getInstance().cleanAoleLauncher3Cache(); } @@ -1983,7 +1986,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, if (mLauncherCallbacks != null) { mLauncherCallbacks.onDestroy(); } - LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver); } public LauncherAccessibilityDelegate getAccessibilityDelegate() { diff --git a/src/com/aoleyun/os/base/BaseApplication.java b/src/com/aoleyun/os/base/BaseApplication.java index 5e86a4f..528ba2b 100644 --- a/src/com/aoleyun/os/base/BaseApplication.java +++ b/src/com/aoleyun/os/base/BaseApplication.java @@ -1,337 +1,32 @@ package com.aoleyun.os.base; -import android.annotation.SuppressLint; import android.app.Application; -import android.content.Context; import android.util.Log; import com.aoleyun.os.manager.ConnectManager; -import com.aoleyun.os.uiuiutils.ToastUtil; -import com.aoleyun.os.uiuiutils.Utils; import com.aoleyun.os.network.NetInterfaceManager; -import com.aoleyun.os.network.UrlAddress; +import com.aoleyun.os.push.PushManager; import com.aoleyun.os.uiuiutils.JGYUtils; import com.aoleyun.os.uiuiutils.TimeUtils; +import com.aoleyun.os.uiuiutils.ToastUtil; import com.arialyy.aria.core.Aria; -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; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.ObservableEmitter; -import io.reactivex.ObservableOnSubscribe; -import io.reactivex.Observer; -import io.reactivex.disposables.Disposable; -import okhttp3.Call; -import okhttp3.Callback; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; - public class BaseApplication extends Application { private static final String TAG = BaseApplication.class.getSimpleName(); - @SuppressLint("StaticFieldLeak") - private static BaseApplication app; - @SuppressLint("StaticFieldLeak") - private static Context context; - - public static BaseApplication getInstance() { - return app; - } - - public static Context getContext() { - return context; - } @Override public void onCreate() { super.onCreate(); - app = this; - context = this; String rootDir = MMKV.initialize(this); Log.e(TAG, "onCreate: " + rootDir); + + PushManager.init(this); JGYUtils.init(this); TimeUtils.init(this); Aria.init(this); NetInterfaceManager.init(this); ToastUtil.init(this); ConnectManager.init(this); - - initPush(); } - - private void initPush() { - - } - - private void initAliasObservable() { - Log.e(TAG, "initAliasObservable: "); - Observable.create(new ObservableOnSubscribe() { - @Override - public void subscribe(ObservableEmitter emitter) throws Exception { - onAliasResult = new OnAliasResult() { - @Override - public void onResult(int code) { - Log.e("initAliasObservable", "onResult: " + code); - emitter.onNext(code); - } - }; - } - }).throttleLast(1, TimeUnit.HOURS) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(Integer integer) { - Log.e("initAliasObservable", "onNext: " + integer); - String s = "alias:\t"; - switch (integer) { - case 0: - Log.e("jiguangInterface", s + "Alias绑定成功"); - break; - case 6001: - Log.e("jiguangInterface", s + "无效的设置"); - break; - case 6011: - Log.e("jiguangInterface", s + "短时间内操作过于频繁"); - break; - case 6013: - Log.e("jiguangInterface", s + "用户设备时间轴异常"); - ToastUtil.show("用户设备时间轴异常,修改后重新登陆\t" + s + "code:6013"); - break; - case 6022: - Log.e("jiguangInterface", s + "alias 操作正在进行中"); - break; - //需要重新设置 - case 6002: - Log.e("jiguangInterface", s + "设置超时,请重试"); - setJpushAlias(); - break; - case 6014: - Log.e("jiguangInterface", s + "服务器繁忙,建议重试"); - setJpushAlias(); - break; - case 6020: - Log.e("jiguangInterface", s + "建议过一段时间再设置"); - setJpushAlias(); - break; - case 6024: - Log.e("jiguangInterface", s + "服务器内部错误"); - setJpushAlias(); - break; - case 6017: - case 6027: - Log.e("jiguangInterface", s + "别名绑定的设备数超过限制"); - cleanJpushAlias(); - setJpushAlias(); - break; - default: - break; - } - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onComplete() { - - } - }); - } - -// 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()); - } - - private void initTagObservable() { - Log.e(TAG, "initTagObservable: "); - Observable.create(new ObservableOnSubscribe() { - @Override - public void subscribe(ObservableEmitter emitter) { - onTagResult = new OnTagResult() { - @Override - public void onResult(int code) { - Log.e("initTagObservable", "onResult: " + code); - emitter.onNext(code); - } - }; - } - }).throttleLast(1, TimeUnit.HOURS) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(Integer integer) { - Log.e("initTagObservable", "onNext: " + integer); - String s = "tags:\t"; - switch (integer) { - case 0: - Log.e("jiguangInterface", s + "Tag绑定成功"); - break; - case 6001: - Log.e("jiguangInterface", s + "无效的设置"); - break; - case 6005: - Log.e("jiguangInterface", s + "某一个 tag 字符串不合法"); - ToastUtil.show("设备标签不合法,联系管理员修改\t" + "code:6005"); - break; - case 6006: - Log.e("jiguangInterface", s + "某一个 tag 超长"); - ToastUtil.show("设备标签过长,联系管理员修改\t" + "code:6006"); - break; - case 6007: - Log.e("jiguangInterface", s + "tags 数量超出限制"); - ToastUtil.show("设备标签数量超出限制,联系管理员修改\t" + "code:6007"); - break; - case 6008: - Log.e("jiguangInterface", s + "tag 超出总长度限制"); - ToastUtil.show("设备标签超出总长度限制,联系管理员修改\t" + "code:6008"); - break; - case 6011: - Log.e("jiguangInterface", s + "短时间内操作过于频繁"); - break; - case 6013: - Log.e("jiguangInterface", s + "用户设备时间轴异常"); - ToastUtil.show("用户设备时间轴异常,修改后重新登陆\t" + "code:6013"); - break; - case 6018: - Log.e("jiguangInterface", s + "Tags 过多"); - cleanJpushTag(); - ToastUtil.show("设备标签数量超出限制,联系管理员修改\t" + "code:6018"); - break; - case 6021: - Log.e("jiguangInterface", s + "tags 操作正在进行中"); - break; - //需要重新设置 - case 6002: - Log.e("jiguangInterface", s + "设置超时,请重试"); - setJpushTags(); - break; - case 6014: - Log.e("jiguangInterface", s + "服务器繁忙,建议重试"); - setJpushTags(); - break; - case 6020: - Log.e("jiguangInterface", s + "建议过一段时间再设置"); - setJpushTags(); - break; - case 6024: - Log.e("jiguangInterface", s + "服务器内部错误"); - setJpushTags(); - break; - default: - break; - } - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onComplete() { - - } - }); - } - -// public void onTagOperatorResult(JPushMessage jPushMessage) { -// if (jPushMessage == null) { -// return; -// } -// int errorCode = jPushMessage.getErrorCode(); -// onTagResult.onResult(errorCode); -// } - - public static void setJpushTags() { - Log.e("jiguangInterface", "30s后重新设置tags"); -// HTTPInterface.setJpushTags(context); - } - - private static OnAliasResult onAliasResult; - - interface OnAliasResult { - void onResult(int code); - } - - private static OnTagResult onTagResult; - - interface OnTagResult { - void onResult(int code); - } - - private String key = "MGM3YmE1YTE2MjJkYmE3OGQ1YmQwMGNjOjFjOTJiODVjZjM0ODhiNTJkNDQyNDJlOA=="; - - synchronized public void cleanJpushAlias() { - //alias的绑定的设备超过10个,但是alias应该是一个设备对应一个,在重置设备后jpush的regid会变动,所以需要清除 - //https://docs.jiguang.cn/jpush/server/push/rest_api_v3_device/#_5 - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder() - .url(UrlAddress.DELETE_JPUSH_ALIAS + Utils.getSerial()) - .header("Authorization", key) - .delete() - .build(); - Call call = client.newCall(request); - call.enqueue(new Callback() { - @Override - public void onFailure(@NotNull Call call, @NotNull IOException e) { - Log.e("cleanJpushAlias", "onFailure: " + e.getMessage()); - } - - @Override - public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { - Log.e("cleanJpushAlias", "onResponse: " + response.toString()); - Log.e(TAG, "onResponse: " + "清除Alias成功"); - } - }); - } - - synchronized public void cleanJpushTag() { - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder() - .url(UrlAddress.DELETE_JPUSH_TAG + Utils.getSerial()) - .header("Authorization", key) - .delete() - .build(); - Call call = client.newCall(request); - call.enqueue(new Callback() { - @Override - public void onFailure(@NotNull Call call, @NotNull IOException e) { - Log.e("cleanJpushTag", "onFailure: " + e.getMessage()); - } - - @Override - public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { - Log.e("cleanJpushTag", "onResponse: " + response.toString()); - Log.e(TAG, "onResponse: " + "清除Tag成功"); - } - }); - } - } diff --git a/src/com/aoleyun/os/comm/CommonConfig.java b/src/com/aoleyun/os/comm/CommonConfig.java new file mode 100644 index 0000000..d9a605b --- /dev/null +++ b/src/com/aoleyun/os/comm/CommonConfig.java @@ -0,0 +1,6 @@ +package com.aoleyun.os.comm; + +public class CommonConfig { + public static final String MMKV_ID = "InterProcessKV"; + +} diff --git a/src/com/aoleyun/os/jpush/ExampleApplication.java b/src/com/aoleyun/os/jpush/ExampleApplication.java deleted file mode 100644 index 0106f47..0000000 --- a/src/com/aoleyun/os/jpush/ExampleApplication.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.app.Application; - -/** - * For developer startup JPush SDK - * - * 一般建议在自定义 Application 类里初始化。也可以在主 Activity 里。 - */ -public class ExampleApplication extends Application { - private static final String TAG = "JIGUANG-Example"; - - @Override - public void onCreate() { - Logger.d(TAG, "[ExampleApplication] onCreate"); - super.onCreate(); - -// JPushInterface.setDebugMode(true); // 设置开启日志,发布时请关闭日志 -// JPushInterface.init(this); // 初始化 JPush - } -} diff --git a/src/com/aoleyun/os/jpush/ExampleUtil.java b/src/com/aoleyun/os/jpush/ExampleUtil.java deleted file mode 100644 index 9de70b0..0000000 --- a/src/com/aoleyun/os/jpush/ExampleUtil.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.content.Context; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; -import android.os.Bundle; -import android.os.Looper; -import android.telephony.TelephonyManager; -import android.text.TextUtils; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - - -public class ExampleUtil { - public static final String PREFS_NAME = "JPUSH_EXAMPLE"; - public static final String PREFS_DAYS = "JPUSH_EXAMPLE_DAYS"; - public static final String PREFS_START_TIME = "PREFS_START_TIME"; - public static final String PREFS_END_TIME = "PREFS_END_TIME"; - public static final String KEY_APP_KEY = "JPUSH_APPKEY"; - - public static boolean isEmpty(String s) { - if (null == s) - return true; - if (s.length() == 0) - return true; - if (s.trim().length() == 0) - return true; - return false; - } - /** - * 只能以 “+” 或者 数字开头;后面的内容只能包含 “-” 和 数字。 - * */ - private final static String MOBILE_NUMBER_CHARS = "^[+0-9][-0-9]{1,}$"; - public static boolean isValidMobileNumber(String s) { - if(TextUtils.isEmpty(s)) return true; - Pattern p = Pattern.compile(MOBILE_NUMBER_CHARS); - Matcher m = p.matcher(s); - return m.matches(); - } - // 校验Tag Alias 只能是数字,英文字母和中文 - public static boolean isValidTagAndAlias(String s) { - Pattern p = Pattern.compile("^[\u4E00-\u9FA50-9a-zA-Z_!@#$&*+=.|]+$"); - Matcher m = p.matcher(s); - return m.matches(); - } - - // 取得AppKey - public static String getAppKey(Context context) { - Bundle metaData = null; - String appKey = null; - try { - ApplicationInfo ai = context.getPackageManager().getApplicationInfo( - context.getPackageName(), PackageManager.GET_META_DATA); - if (null != ai) - metaData = ai.metaData; - if (null != metaData) { - appKey = metaData.getString(KEY_APP_KEY); - if ((null == appKey) || appKey.length() != 24) { - appKey = null; - } - } - } catch (NameNotFoundException e) { - - } - return appKey; - } - - // 取得版本号 - public static String GetVersion(Context context) { - try { - PackageInfo manager = context.getPackageManager().getPackageInfo( - context.getPackageName(), 0); - return manager.versionName; - } catch (NameNotFoundException e) { - return "Unknown"; - } - } - - public static void showToast(final String toast, final Context context) - { - new Thread(new Runnable() { - - @Override - public void run() { - Looper.prepare(); -// Toast.makeText(context, toast, Toast.LENGTH_SHORT).show(); - Looper.loop(); - } - }).start(); - } - - public static boolean isConnected(Context context) { - ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo info = conn.getActiveNetworkInfo(); - return (info != null && info.isConnected()); - } - - public static String getImei(Context context, String imei) { - String ret = null; - try { - TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - ret = telephonyManager.getDeviceId(); - } catch (Exception e) { - Logger.e(ExampleUtil.class.getSimpleName(), e.getMessage()); - } - if (isReadableASCII(ret)){ - return ret; - } else { - return imei; - } - } - - private static boolean isReadableASCII(CharSequence string){ - if (TextUtils.isEmpty(string)) return false; - try { - Pattern p = Pattern.compile("[\\x20-\\x7E]+"); - return p.matcher(string).matches(); - } catch (Throwable e){ - return true; - } - } - -// public static String getDeviceId(Context context) { -// return JPushInterface.getUdid(context); -// } -} diff --git a/src/com/aoleyun/os/jpush/LocalBroadcastManager.java b/src/com/aoleyun/os/jpush/LocalBroadcastManager.java deleted file mode 100644 index ae2ef04..0000000 --- a/src/com/aoleyun/os/jpush/LocalBroadcastManager.java +++ /dev/null @@ -1,263 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.Uri; -import android.os.Handler; -import android.os.Message; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Set; - -/** - * Created by efan on 2017/4/14. - */ - -public final class LocalBroadcastManager { - private static final String TAG = "JIGUANG-Example"; - private static final boolean DEBUG = false; - private final Context mAppContext; - private final HashMap> mReceivers = new HashMap>(); - private final HashMap> mActions = new HashMap>(); - private final ArrayList mPendingBroadcasts = new ArrayList(); - static final int MSG_EXEC_PENDING_BROADCASTS = 1; - private final Handler mHandler; - private static final Object mLock = new Object(); - private static LocalBroadcastManager mInstance; - - public static LocalBroadcastManager getInstance(Context context) { - Object var1 = mLock; - synchronized (mLock) { - if (mInstance == null) { - mInstance = new LocalBroadcastManager(context.getApplicationContext()); - } - - return mInstance; - } - } - - private LocalBroadcastManager(Context context) { - this.mAppContext = context; - this.mHandler = new Handler(context.getMainLooper()) { - public void handleMessage(Message msg) { - switch (msg.what) { - case 1: - LocalBroadcastManager.this.executePendingBroadcasts(); - break; - default: - super.handleMessage(msg); - } - - } - }; - } - - public void registerReceiver(BroadcastReceiver receiver, IntentFilter filter) { - HashMap var3 = this.mReceivers; - synchronized (this.mReceivers) { - ReceiverRecord entry = new ReceiverRecord(filter, receiver); - ArrayList filters = (ArrayList) this.mReceivers.get(receiver); - if (filters == null) { - filters = new ArrayList(1); - this.mReceivers.put(receiver, filters); - } - - filters.add(filter); - - for (int i = 0; i < filter.countActions(); ++i) { - String action = filter.getAction(i); - ArrayList entries = (ArrayList) this.mActions.get(action); - if (entries == null) { - entries = new ArrayList(1); - this.mActions.put(action, entries); - } - - entries.add(entry); - } - - } - } - - public void unregisterReceiver(BroadcastReceiver receiver) { - HashMap var2 = this.mReceivers; - synchronized (this.mReceivers) { - ArrayList filters = (ArrayList) this.mReceivers.remove(receiver); - if (filters != null) { - for (int i = 0; i < filters.size(); ++i) { - IntentFilter filter = (IntentFilter) filters.get(i); - - for (int j = 0; j < filter.countActions(); ++j) { - String action = filter.getAction(j); - ArrayList receivers = (ArrayList) this.mActions.get(action); - if (receivers != null) { - for (int k = 0; k < receivers.size(); ++k) { - if (((ReceiverRecord) receivers.get(k)).receiver == receiver) { - receivers.remove(k); - --k; - } - } - - if (receivers.size() <= 0) { - this.mActions.remove(action); - } - } - } - } - - } - } - } - - public boolean sendBroadcast(Intent intent) { - HashMap var2 = this.mReceivers; - synchronized (this.mReceivers) { - String action = intent.getAction(); - String type = intent.resolveTypeIfNeeded(this.mAppContext.getContentResolver()); - Uri data = intent.getData(); - String scheme = intent.getScheme(); - Set categories = intent.getCategories(); - boolean debug = (intent.getFlags() & 8) != 0; - if (debug) { - Logger.v("LocalBroadcastManager", "Resolving type " + type + " scheme " + scheme + " of intent " + intent); - } - - ArrayList entries = (ArrayList) this.mActions.get(intent.getAction()); - if (entries != null) { - if (debug) { - Logger.v("LocalBroadcastManager", "Action list: " + entries); - } - - ArrayList receivers = null; - - int i; - for (i = 0; i < entries.size(); ++i) { - ReceiverRecord receiver = (ReceiverRecord) entries.get(i); - if (debug) { - Logger.v("LocalBroadcastManager", "Matching against filter " + receiver.filter); - } - - if (receiver.broadcasting) { - if (debug) { - Logger.v("LocalBroadcastManager", " Filter\'s target already added"); - } - } else { - int match = receiver.filter.match(action, type, scheme, data, categories, "LocalBroadcastManager"); - if (match >= 0) { - if (debug) { - Logger.v("LocalBroadcastManager", " Filter matched! match=0x" + Integer.toHexString(match)); - } - - if (receivers == null) { - receivers = new ArrayList(); - } - - receivers.add(receiver); - receiver.broadcasting = true; - } else if (debug) { - String reason; - switch (match) { - case -4: - reason = "category"; - break; - case -3: - reason = "action"; - break; - case -2: - reason = "data"; - break; - case -1: - reason = "type"; - break; - default: - reason = "unknown reason"; - } - - Logger.v("LocalBroadcastManager", " Filter did not match: " + reason); - } - } - } - - if (receivers != null) { - for (i = 0; i < receivers.size(); ++i) { - ((ReceiverRecord) receivers.get(i)).broadcasting = false; - } - - this.mPendingBroadcasts.add(new BroadcastRecord(intent, receivers)); - if (!this.mHandler.hasMessages(1)) { - this.mHandler.sendEmptyMessage(1); - } - - return true; - } - } - - return false; - } - } - - public void sendBroadcastSync(Intent intent) { - if (this.sendBroadcast(intent)) { - this.executePendingBroadcasts(); - } - - } - - private void executePendingBroadcasts() { - while (true) { - BroadcastRecord[] brs = null; - HashMap i = this.mReceivers; - synchronized (this.mReceivers) { - int br = this.mPendingBroadcasts.size(); - if (br <= 0) { - return; - } - - brs = new BroadcastRecord[br]; - this.mPendingBroadcasts.toArray(brs); - this.mPendingBroadcasts.clear(); - } - - for (int var6 = 0; var6 < brs.length; ++var6) { - BroadcastRecord var7 = brs[var6]; - - for (int j = 0; j < var7.receivers.size(); ++j) { - ((ReceiverRecord) var7.receivers.get(j)).receiver.onReceive(this.mAppContext, var7.intent); - } - } - } - } - - private static class BroadcastRecord { - final Intent intent; - final ArrayList receivers; - - BroadcastRecord(Intent _intent, ArrayList _receivers) { - this.intent = _intent; - this.receivers = _receivers; - } - } - - private static class ReceiverRecord { - final IntentFilter filter; - final BroadcastReceiver receiver; - boolean broadcasting; - - ReceiverRecord(IntentFilter _filter, BroadcastReceiver _receiver) { - this.filter = _filter; - this.receiver = _receiver; - } - - public String toString() { - StringBuilder builder = new StringBuilder(128); - builder.append("Receiver{"); - builder.append(this.receiver); - builder.append(" filter="); - builder.append(this.filter); - builder.append("}"); - return builder.toString(); - } - } -} \ No newline at end of file diff --git a/src/com/aoleyun/os/jpush/Logger.java b/src/com/aoleyun/os/jpush/Logger.java deleted file mode 100644 index a9dfe7f..0000000 --- a/src/com/aoleyun/os/jpush/Logger.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.util.Log; - -/** - * Created by efan on 2017/4/13. - */ - -public class Logger { - - //设为false关闭日志 - private static final boolean LOG_ENABLE = true; - - public static void i(String tag, String msg){ - if (LOG_ENABLE){ - Log.i(tag, msg); - } - } - public static void v(String tag, String msg){ - if (LOG_ENABLE){ - Log.v(tag, msg); - } - } - public static void d(String tag, String msg){ - if (LOG_ENABLE){ - Log.d(tag, msg); - } - } - public static void w(String tag, String msg){ - if (LOG_ENABLE){ - Log.w(tag, msg); - } - } - public static void e(String tag, String msg){ - if (LOG_ENABLE){ - Log.e(tag, msg); - } - } - -} diff --git a/src/com/aoleyun/os/jpush/MyJPushMessageReceiver.java b/src/com/aoleyun/os/jpush/MyJPushMessageReceiver.java deleted file mode 100644 index 8b0a136..0000000 --- a/src/com/aoleyun/os/jpush/MyJPushMessageReceiver.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.content.Context; - -import com.aoleyun.os.base.BaseApplication; - -/** - * 自定义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); -// } -//} diff --git a/src/com/aoleyun/os/jpush/MyReceiver.java b/src/com/aoleyun/os/jpush/MyReceiver.java deleted file mode 100644 index f2236c5..0000000 --- a/src/com/aoleyun/os/jpush/MyReceiver.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.TextUtils; - -import com.aoleyun.os.network.HTTPInterface; -import com.aoleyun.os.service.MainService; -import com.aoleyun.os.uiuiutils.ForegroundAppUtil; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.Iterator; - -/** - * 自定义接收器 - *

- * 如果不定义这个 Receiver,则: - * 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_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(); -// } -// -// private static final String SEND_RUNNING_APP = "2"; -// //应用锁 -// private static final String UPDATE_APP_LOCK = "39"; -// -// -// //send msg to MainActivity -// private void processCustomMessage(Context context, Bundle bundle) { -//// if (Launcher.isForeground) { -//// String message = bundle.getString(JPushInterface.EXTRA_MESSAGE); -//// String extras = bundle.getString(JPushInterface.EXTRA_EXTRA); -//// Intent msgIntent = new Intent(Launcher.MESSAGE_RECEIVED_ACTION); -//// msgIntent.putExtra(Launcher.KEY_MESSAGE, message); -//// if (!ExampleUtil.isEmpty(extras)) { -//// try { -//// JSONObject extraJson = new JSONObject(extras); -//// if (extraJson.length() > 0) { -//// msgIntent.putExtra(Launcher.KEY_EXTRAS, extras); -//// } -//// } catch (JSONException e) { -//// -//// } -//// -//// } -//// LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent); -//// } -// -// 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); -// -// switch (message) { -// case SEND_RUNNING_APP: -// getRunningApp(context); -// break; -// case UPDATE_APP_LOCK: -// HTTPInterface.getAppPasswd(); -// break; -// default: -// break; -// } -// } -// -// private void getRunningApp(Context context) { -// HTTPInterface.sendRunningApp(context); -// } -// -//} diff --git a/src/com/aoleyun/os/jpush/PushService.java b/src/com/aoleyun/os/jpush/PushService.java deleted file mode 100644 index 06cdefd..0000000 --- a/src/com/aoleyun/os/jpush/PushService.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.aoleyun.os.jpush; - - -//public class PushService extends JCommonService { -// -//} diff --git a/src/com/aoleyun/os/jpush/TagAliasOperatorHelper.java b/src/com/aoleyun/os/jpush/TagAliasOperatorHelper.java deleted file mode 100644 index 55f9394..0000000 --- a/src/com/aoleyun/os/jpush/TagAliasOperatorHelper.java +++ /dev/null @@ -1,344 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; -import android.util.Log; -import android.util.SparseArray; - -import com.aoleyun.os.uiuiutils.ToastUtil; - -import java.util.Locale; -import java.util.Set; - -/** - * 处理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 setActionCache = new SparseArray(); -// -// public Object get(int sequence){ -// return setActionCache.get(sequence); -// } -// public Object remove(int sequence){ -// return setActionCache.get(sequence); -// } -// public void put(int sequence, Object tagAliasBean){ -// setActionCache.put(sequence,tagAliasBean); -// } -// private Handler delaySendHandler = new Handler(){ -// @Override -// public void handleMessage(Message msg) { -// switch (msg.what){ -// case DELAY_SEND_ACTION: -// if(msg.obj !=null && msg.obj instanceof TagAliasBean){ -// Logger.i(TAG,"on delay time"); -// sequence++; -// TagAliasBean tagAliasBean = (TagAliasBean) msg.obj; -// setActionCache.put(sequence, tagAliasBean); -// if(context!=null) { -// handleAction(context, sequence, tagAliasBean); -// }else{ -// Logger.e(TAG,"#unexcepted - context was null"); -// } -// }else{ -// Logger.w(TAG,"#unexcepted - msg obj was incorrect"); -// } -// break; -// case DELAY_SET_MOBILE_NUMBER_ACTION: -// if(msg.obj !=null && msg.obj instanceof String) { -// Logger.i(TAG, "retry set mobile number"); -// sequence++; -// String mobileNumber = (String) msg.obj; -// setActionCache.put(sequence, mobileNumber); -// if(context !=null) { -// handleAction(context, sequence, mobileNumber); -// }else { -// Logger.e(TAG, "#unexcepted - context was null"); -// } -// }else{ -// Logger.w(TAG,"#unexcepted - msg obj was incorrect"); -// } -// break; -// } -// } -// }; -// public void handleAction(Context context, int sequence, String mobileNumber){ -// put(sequence,mobileNumber); -// Logger.d(TAG,"sequence:"+sequence+",mobileNumber:"+mobileNumber); -// JPushInterface.setMobileNumber(context,sequence,mobileNumber); -// } -// /** -// * 处理设置tag -// * */ -// public void handleAction(Context context, int sequence, TagAliasBean tagAliasBean){ -// init(context); -// if(tagAliasBean == null){ -// Logger.w(TAG,"tagAliasBean was null"); -// return; -// } -// put(sequence,tagAliasBean); -// if(tagAliasBean.isAliasAction){ -// switch (tagAliasBean.action){ -// case ACTION_GET: -// JPushInterface.getAlias(context,sequence); -// break; -// case ACTION_DELETE: -// JPushInterface.deleteAlias(context,sequence); -// break; -// case ACTION_SET: -// JPushInterface.setAlias(context,sequence,tagAliasBean.alias); -// break; -// default: -// Logger.w(TAG,"unsupport alias action type"); -// return; -// } -// }else { -// switch (tagAliasBean.action) { -// case ACTION_ADD: -// JPushInterface.addTags(context, sequence, tagAliasBean.tags); -// break; -// case ACTION_SET: -// JPushInterface.setTags(context, sequence, tagAliasBean.tags); -// break; -// case ACTION_DELETE: -// JPushInterface.deleteTags(context, sequence, tagAliasBean.tags); -// break; -// case ACTION_CHECK: -// //一次只能check一个tag -// String tag = (String)tagAliasBean.tags.toArray()[0]; -// JPushInterface.checkTagBindState(context,sequence,tag); -// break; -// case ACTION_GET: -// JPushInterface.getAllTags(context, sequence); -// break; -// case ACTION_CLEAN: -// JPushInterface.cleanTags(context, sequence); -// break; -// default: -// Logger.w(TAG,"unsupport tag action type"); -// return; -// } -// } -// } -// private boolean RetryActionIfNeeded(int errorCode,TagAliasBean tagAliasBean){ -// if(!ExampleUtil.isConnected(context)){ -// Logger.w(TAG,"no network"); -// return false; -// } -// //返回的错误码为6002 超时,6014 服务器繁忙,都建议延迟重试 -// if(errorCode == 6002 || errorCode == 6014){ -// Logger.d(TAG,"need retry"); -// if(tagAliasBean!=null){ -// Message message = new Message(); -// message.what = DELAY_SEND_ACTION; -// message.obj = tagAliasBean; -// delaySendHandler.sendMessageDelayed(message,1000*60); -// String logs =getRetryStr(tagAliasBean.isAliasAction, tagAliasBean.action,errorCode); -// ExampleUtil.showToast(logs, context); -// return true; -// } -// } -// return false; -// } -// private boolean RetrySetMObileNumberActionIfNeeded(int errorCode, String mobileNumber){ -// if(!ExampleUtil.isConnected(context)){ -// Logger.w(TAG,"no network"); -// return false; -// } -// //返回的错误码为6002 超时,6024 服务器内部错误,建议稍后重试 -// if(errorCode == 6002 || errorCode == 6024){ -// Logger.d(TAG,"need retry"); -// Message message = new Message(); -// message.what = DELAY_SET_MOBILE_NUMBER_ACTION; -// message.obj = mobileNumber; -// delaySendHandler.sendMessageDelayed(message,1000*60); -// String str = "Failed to set mobile number due to %s. Try again after 60s."; -// str = String.format(Locale.ENGLISH,str,(errorCode == 6002 ? "timeout" : "server internal error”")); -// ExampleUtil.showToast(str, context); -// return true; -// } -// return false; -// -// } -// private String getRetryStr(boolean isAliasAction, int actionType, int errorCode){ -// String str = "Failed to %s %s due to %s. Try again after 60s."; -// str = String.format(Locale.ENGLISH,str,getActionStr(actionType),(isAliasAction? "alias" : " tags") ,(errorCode == 6002 ? "timeout" : "server too busy")); -// return str; -// } -// -// private String getActionStr(int actionType){ -// switch (actionType){ -// case ACTION_ADD: -// return "add"; -// case ACTION_SET: -// return "set"; -// case ACTION_DELETE: -// return "delete"; -// case ACTION_GET: -// return "get"; -// case ACTION_CLEAN: -// return "clean"; -// case ACTION_CHECK: -// return "check"; -// } -// return "unkonw operation"; -// } -// -// public void onTagOperatorResult(Context context, JPushMessage jPushMessage) { -// int sequence = jPushMessage.getSequence(); -// Logger.i(TAG,"action - onTagOperatorResult, sequence:"+sequence+",tags:"+jPushMessage.getTags()); -// Logger.i(TAG,"tags size:"+jPushMessage.getTags().size()); -// init(context); -// //根据sequence从之前操作缓存中获取缓存记录 -// TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence); -// if(tagAliasBean == null){ -// ExampleUtil.showToast("获取缓存记录失败", context); -// return; -// } -// if(jPushMessage.getErrorCode() == 0){ -// Logger.i(TAG,"action - modify tag Success,sequence:"+sequence); -// setActionCache.remove(sequence); -// String logs = getActionStr(tagAliasBean.action)+" tags success"; -// Logger.i(TAG,logs); -// Log.e(TAG,"Tag绑定成功: " + jPushMessage.getTags()); -// ToastUtil.betaShow("Tag绑定成功: " + jPushMessage.getTags()); -// ExampleUtil.showToast(logs, context); -// }else{ -// String logs = "Failed to " + getActionStr(tagAliasBean.action)+" tags"; -// if(jPushMessage.getErrorCode() == 6018){ -// //tag数量超过限制,需要先清除一部分再add -// logs += ", tags is exceed limit need to clean"; -// } -// logs += ", errorCode:" + jPushMessage.getErrorCode(); -// Logger.e(TAG, logs); -// if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) { -// ExampleUtil.showToast(logs, context); -// } -// } -// } -// -// public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){ -// int sequence = jPushMessage.getSequence(); -// Logger.i(TAG,"action - onCheckTagOperatorResult, sequence:"+sequence+",checktag:"+jPushMessage.getCheckTag()); -// init(context); -// //根据sequence从之前操作缓存中获取缓存记录 -// TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence); -// if(tagAliasBean == null){ -// ExampleUtil.showToast("获取缓存记录失败", context); -// return; -// } -// if(jPushMessage.getErrorCode() == 0){ -// Logger.i(TAG,"tagBean:"+tagAliasBean); -// setActionCache.remove(sequence); -// String logs = getActionStr(tagAliasBean.action)+" tag "+jPushMessage.getCheckTag() + " bind state success,state:"+jPushMessage.getTagCheckStateResult(); -// Logger.i(TAG,logs); -// ExampleUtil.showToast(logs, context); -// }else{ -// String logs = "Failed to " + getActionStr(tagAliasBean.action)+" tags, errorCode:" + jPushMessage.getErrorCode(); -// Logger.e(TAG, logs); -// if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) { -// ExampleUtil.showToast(logs, context); -// } -// } -// } -// -// public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { -// int sequence = jPushMessage.getSequence(); -// Logger.i(TAG,"action - onAliasOperatorResult, sequence:"+sequence+",alias:"+jPushMessage.getAlias()); -// init(context); -// //根据sequence从之前操作缓存中获取缓存记录 -// TagAliasBean tagAliasBean = (TagAliasBean)setActionCache.get(sequence); -// if(tagAliasBean == null){ -// ExampleUtil.showToast("获取缓存记录失败", context); -// return; -// } -// if(jPushMessage.getErrorCode() == 0){ -// Logger.i(TAG,"action - modify alias Success,sequence:"+sequence); -// setActionCache.remove(sequence); -// String logs = getActionStr(tagAliasBean.action)+" alias success"; -// Logger.i(TAG,logs); -// Log.e(TAG,"Alias绑定成功: "+jPushMessage.getAlias()); -// ToastUtil.betaShow("Alias绑定成功: "+jPushMessage.getAlias()); -// ExampleUtil.showToast(logs, context); -// }else{ -// String logs = "Failed to " + getActionStr(tagAliasBean.action)+" alias, errorCode:" + jPushMessage.getErrorCode(); -// Logger.e(TAG, logs); -// if(!RetryActionIfNeeded(jPushMessage.getErrorCode(),tagAliasBean)) { -// ExampleUtil.showToast(logs, context); -// } -// } -// } -// //设置手机号码回调 -// public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) { -// int sequence = jPushMessage.getSequence(); -// Logger.i(TAG,"action - onMobileNumberOperatorResult, sequence:"+sequence+",mobileNumber:"+jPushMessage.getMobileNumber()); -// init(context); -// if(jPushMessage.getErrorCode() == 0){ -// Logger.i(TAG,"action - set mobile number Success,sequence:"+sequence); -// setActionCache.remove(sequence); -// }else{ -// String logs = "Failed to set mobile number, errorCode:" + jPushMessage.getErrorCode(); -// Logger.e(TAG, logs); -// if(!RetrySetMObileNumberActionIfNeeded(jPushMessage.getErrorCode(),jPushMessage.getMobileNumber())){ -// ExampleUtil.showToast(logs, context); -// } -// } -// } -// -// public static class TagAliasBean{ -// public int action; -// public Set tags; -// public String alias; -// public boolean isAliasAction; -// -// @Override -// public String toString() { -// return "TagAliasBean{" + -// "action=" + action + -// ", tags=" + tags + -// ", alias='" + alias + '\'' + -// ", isAliasAction=" + isAliasAction + -// '}'; -// } -// } -//} diff --git a/src/com/aoleyun/os/jpush/TestActivity.java b/src/com/aoleyun/os/jpush/TestActivity.java deleted file mode 100644 index 9094603..0000000 --- a/src/com/aoleyun/os/jpush/TestActivity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.aoleyun.os.jpush; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.view.ViewGroup.LayoutParams; -import android.widget.TextView; - -public class TestActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - TextView tv = new TextView(this); - tv.setText("用户自定义打开的Activity"); - Intent intent = getIntent(); - if (null != intent) { - Bundle bundle = getIntent().getExtras(); - String title = null; - String content = null; - if(bundle!=null){ -// title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE); -// content = bundle.getString(JPushInterface.EXTRA_ALERT); - } - tv.setText("Title : " + title + " " + "Content : " + content); - } - addContentView(tv, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); - } - -} diff --git a/src/com/aoleyun/os/model/LoaderTask.java b/src/com/aoleyun/os/model/LoaderTask.java index 20fe387..444812f 100644 --- a/src/com/aoleyun/os/model/LoaderTask.java +++ b/src/com/aoleyun/os/model/LoaderTask.java @@ -327,7 +327,9 @@ public class LoaderTask implements Runnable { synchronized (this) { for (LauncherActivityInfo app : apps) { Log.e("verifyApplications", "AllAPP: " + app.getApplicationInfo().packageName); - if (BuildConfig.APPLICATION_ID.equals(app.getApplicationInfo().packageName)) + if (BuildConfig.APPLICATION_ID.equals(app.getApplicationInfo().packageName) + || "com.ygyb.yischool".equals(app.getApplicationInfo().packageName) + ) continue; /*系统应用*/ if (JGYUtils.getInstance().getDeviceIsLocked() && aihuaUnlock != 1) { diff --git a/src/com/aoleyun/os/network/HTTPInterface.java b/src/com/aoleyun/os/network/HTTPInterface.java index 98a8208..ce70840 100644 --- a/src/com/aoleyun/os/network/HTTPInterface.java +++ b/src/com/aoleyun/os/network/HTTPInterface.java @@ -1,26 +1,20 @@ package com.aoleyun.os.network; import android.content.Context; -import android.text.TextUtils; import android.util.Log; import com.aoleyun.os.network.bean.AppPasswdBean; import com.aoleyun.os.network.bean.BaseResponse; import com.aoleyun.os.uiuiutils.APKUtils; -//import com.aoleyun.os.jpush.TagAliasOperatorHelper; -import com.aoleyun.os.uiuiutils.JGYUtils; import com.aoleyun.os.uiuiutils.TimeUtils; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.tencent.mmkv.MMKV; -import java.util.HashSet; import java.util.List; -import java.util.Set; import io.reactivex.Observer; -import io.reactivex.annotations.NonNull; import io.reactivex.disposables.Disposable; /** @@ -66,56 +60,6 @@ public class HTTPInterface { }); } - synchronized public static void setJpushTags(final Context context) { - NetInterfaceManager.getInstance() - .getJpushTagsObservable() - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e(TAG + ":" + "setJpushTags", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - if (response.code == 200) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - String batch = jsonObject.get("batch").getAsString(); - Log.e(TAG + ":" + "setJpushTags", "onNext: " + batch); - if (!TextUtils.isEmpty(batch)) { - Set set = new HashSet(); - set.add(batch); - JGYUtils.getInstance().getAppPlatform(new JGYUtils.GetAppPlatformCallback() { - @Override - public void AppPlatform(int platform) { - if (platform == JGYUtils.MTKPlatform) { - set.add(JGYUtils.MTKTag); - } else if (platform == JGYUtils.ZhanruiPlatform) { - set.add(JGYUtils.ZhanruiTag); - } - } - }); -// setTag(context, set); - } else { - Log.e(TAG + ":" + "setJpushTags", "onNext: " + "batch empty"); - } - } else { - Log.e(TAG + ":" + "setJpushTags", "onNext: " + response.toString()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e(TAG + ":" + "setJpushTags", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e(TAG + ":" + "setJpushTags", "onComplete: "); - } - }); - } - /** * 发送正在运行的app信息 * diff --git a/src/com/aoleyun/os/network/NetInterfaceManager.java b/src/com/aoleyun/os/network/NetInterfaceManager.java index 65da00b..d56e835 100644 --- a/src/com/aoleyun/os/network/NetInterfaceManager.java +++ b/src/com/aoleyun/os/network/NetInterfaceManager.java @@ -5,6 +5,9 @@ import android.content.Context; import android.text.TextUtils; import android.util.Log; +import com.alibaba.sdk.android.push.CloudPushService; +import com.alibaba.sdk.android.push.CommonCallback; +import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; import com.aoleyun.os.disklrucache.CacheHelper; import com.aoleyun.os.manager.ConnectManager; import com.aoleyun.os.manager.ConnectMode; @@ -12,7 +15,7 @@ import com.aoleyun.os.network.api.AddAppLog; import com.aoleyun.os.network.api.AppUsageRecordApi; import com.aoleyun.os.network.api.CheckUpdate; import com.aoleyun.os.network.api.GetAppPassword; -import com.aoleyun.os.network.api.GetJpushTagsApi; +import com.aoleyun.os.network.api.GetPushTagsApi; import com.aoleyun.os.network.api.RunningApp; import com.aoleyun.os.network.api.SendScreenshotApi; import com.aoleyun.os.network.bean.AppPasswdBean; @@ -26,6 +29,8 @@ import com.tencent.android.tpush.XGPushManager; import com.tencent.mmkv.MMKV; import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -110,14 +115,14 @@ public class NetInterfaceManager { public Observable getRunningAppObservable(String json) { return mRetrofit.create(RunningApp.class) - .sendRunningInfo(Utils.getSerial(), json) + .sendRunningInfo(Utils.getSerial(mContext), json) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } public Observable>> getAppPasswordObservable() { return mRetrofit.create(GetAppPassword.class) - .getAppPasswd(Utils.getSerial()) + .getAppPasswd(Utils.getSerial(mContext)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } @@ -135,9 +140,9 @@ public class NetInterfaceManager { * * @return */ - public Observable> getJpushTagsObservable() { - return mRetrofit.create(GetJpushTagsApi.class) - .getJpushTags(Utils.getSerial()) + public Observable> getPushTagsObservable() { + return mRetrofit.create(GetPushTagsApi.class) + .getPushTags(Utils.getSerial(mContext)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } @@ -189,7 +194,7 @@ public class NetInterfaceManager { } } }); - getJpushTagsObservable() + getPushTagsObservable() .subscribe(new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -228,7 +233,7 @@ public class NetInterfaceManager { }); } - synchronized private void clearAndAppendTags(Set tagSets) { + synchronized private void clearAndAppendTags(Set tagSets) { XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, new XGIOperateCallback() { @Override public void onSuccess(Object o, int i) { @@ -240,5 +245,19 @@ public class NetInterfaceManager { Log.e("clearAndAppendTags", "onFail: " + o); } }); + String[] tag = new ArrayList<>(tagSets).toArray(new String[tagSets.size()]); + CloudPushService pushService = PushServiceFactory.getCloudPushService(); + pushService.bindTag(CloudPushService.DEVICE_TARGET, tag, null, new CommonCallback() { + @Override + public void onSuccess(String s) { + Log.e("bindTag", "bind tag " + Arrays.toString(tag) + " success\n"); + } + + @Override + public void onFailed(String errorCode, String errorMsg) { + Log.e("bindTag", "bind tag " + Arrays.toString(tag) + " failed." + + "errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n"); + } + }); } } \ No newline at end of file diff --git a/src/com/aoleyun/os/network/UrlAddress.java b/src/com/aoleyun/os/network/UrlAddress.java index d86e008..350948e 100644 --- a/src/com/aoleyun/os/network/UrlAddress.java +++ b/src/com/aoleyun/os/network/UrlAddress.java @@ -19,9 +19,4 @@ public class UrlAddress { public static final String SEND_APP_RECORD = "And/appUsageRecord"; //上传截图 public static final String SEND_SCREENSHOT = "Screenshot/addImg"; - - //删除alias - public static final String DELETE_JPUSH_ALIAS = "https://device.jpush.cn/v3/aliases/"; - //删除tags - public static final String DELETE_JPUSH_TAG = "https://device.jpush.cn/v3/tags/"; } diff --git a/src/com/aoleyun/os/network/api/GetJpushTagsApi.java b/src/com/aoleyun/os/network/api/GetPushTagsApi.java similarity index 80% rename from src/com/aoleyun/os/network/api/GetJpushTagsApi.java rename to src/com/aoleyun/os/network/api/GetPushTagsApi.java index c2dcc40..96ebc17 100644 --- a/src/com/aoleyun/os/network/api/GetJpushTagsApi.java +++ b/src/com/aoleyun/os/network/api/GetPushTagsApi.java @@ -9,9 +9,9 @@ import io.reactivex.Observable; import retrofit2.http.GET; import retrofit2.http.Query; -public interface GetJpushTagsApi { +public interface GetPushTagsApi { @GET(UrlAddress.GET_DEVICES_TAGS) - Observable> getJpushTags( + Observable> getPushTags( @Query("sn") String sn ); } diff --git a/src/com/aoleyun/os/push/PushManager.java b/src/com/aoleyun/os/push/PushManager.java new file mode 100644 index 0000000..501767a --- /dev/null +++ b/src/com/aoleyun/os/push/PushManager.java @@ -0,0 +1,51 @@ +package com.aoleyun.os.push; + +import android.annotation.SuppressLint; +import android.content.ContentResolver; +import android.content.Context; +import android.content.pm.PackageManager; + +import com.aoleyun.os.comm.CommonConfig; +import com.aoleyun.os.disklrucache.CacheHelper; +import com.aoleyun.os.network.HTTPInterface; +import com.tencent.mmkv.MMKV; + +public class PushManager { + private static final String TAG = PushManager.class.getSimpleName(); + + @SuppressLint("StaticFieldLeak") + private static PushManager sInstance; + private Context mContext; + + private PushManager(Context context) { + if (context == null) { + throw new RuntimeException("Context is NULL"); + } + this.mContext = context; + } + + public static void init(Context context) { + if (sInstance == null) { + sInstance = new PushManager(context); + } + } + + public static PushManager getInstance() { + if (sInstance == null) { + throw new IllegalStateException("You must be init PushManager first"); + } + return sInstance; + } + + /*删除应用*/ + private final String UPDATEPASSWD = "39"; + + public void setPushContent(String title, String extras) { + switch (title) { + case UPDATEPASSWD: + HTTPInterface.getAppPasswd(); + break; + default: + } + } +} diff --git a/src/com/aoleyun/os/push/alipush/AliMessageIntentService.java b/src/com/aoleyun/os/push/alipush/AliMessageIntentService.java new file mode 100644 index 0000000..194063a --- /dev/null +++ b/src/com/aoleyun/os/push/alipush/AliMessageIntentService.java @@ -0,0 +1,99 @@ +package com.aoleyun.os.push.alipush; + +import android.content.Context; +import android.util.Log; + +import com.alibaba.sdk.android.push.AliyunMessageIntentService; +import com.alibaba.sdk.android.push.notification.CPushMessage; + +import java.util.Map; + +/** + * Created by liyazhou on 17/8/22. + * 为避免推送广播被系统拦截的小概率事件,我们推荐用户通过IntentService处理消息互调,接入步骤: + * 1. 创建IntentService并继承AliyunMessageIntentService + * 2. 覆写相关方法,并在Manifest的注册该Service + * 3. 调用接口CloudPushService.setPushIntentService + * 详细用户可参考:https://help.aliyun.com/document_detail/30066.html#h2-2-messagereceiver-aliyunmessageintentservice + */ + +public class AliMessageIntentService extends AliyunMessageIntentService { + private static final String TAG = AliyunMessageIntentService.class.getSimpleName(); + + /** + * 推送通知的回调方法 + * + * @param context + * @param title + * @param summary + * @param extraMap + */ + @Override + protected void onNotification(Context context, String title, String summary, Map extraMap) { + Log.i(TAG, "收到一条推送通知 : " + title + ", summary:" + summary); + } + + /** + * 推送消息的回调方法 + * + * @param context + * @param cPushMessage + */ + @Override + protected void onMessage(Context context, CPushMessage cPushMessage) { + Log.i(TAG, "收到一条推送消息 : " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent()); + } + + /** + * 从通知栏打开通知的扩展处理 + * + * @param context + * @param title + * @param summary + * @param extraMap + */ + @Override + protected void onNotificationOpened(Context context, String title, String summary, String extraMap) { + Log.i(TAG, "onNotificationOpened : " + " : " + title + " : " + summary + " : " + extraMap); + } + + /** + * 无动作通知点击回调。当在后台或阿里云控制台指定的通知动作为无逻辑跳转时,通知点击回调为onNotificationClickedWithNoAction而不是onNotificationOpened + * + * @param context + * @param title + * @param summary + * @param extraMap + */ + @Override + protected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) { + Log.i(TAG, "onNotificationClickedWithNoAction : " + " : " + title + " : " + summary + " : " + extraMap); + } + + /** + * 通知删除回调 + * + * @param context + * @param messageId + */ + @Override + protected void onNotificationRemoved(Context context, String messageId) { + Log.i(TAG, "onNotificationRemoved : " + messageId); + } + + /** + * 应用处于前台时通知到达回调。注意:该方法仅对自定义样式通知有效,相关详情请参考https://help.aliyun.com/document_detail/30066.html#h3-3-4-basiccustompushnotification-api + * + * @param context + * @param title + * @param summary + * @param extraMap + * @param openType + * @param openActivity + * @param openUrl + */ + @Override + protected void onNotificationReceivedInApp(Context context, String title, String summary, Map extraMap, int openType, String openActivity, String openUrl) { + Log.i(TAG, "onNotificationReceivedInApp : " + " : " + title + " : " + summary + " " + extraMap + " : " + openType + " : " + openActivity + " : " + openUrl); + } +} diff --git a/src/com/aoleyun/os/push/alipush/AliyunMessageReceiver.java b/src/com/aoleyun/os/push/alipush/AliyunMessageReceiver.java new file mode 100644 index 0000000..0c22234 --- /dev/null +++ b/src/com/aoleyun/os/push/alipush/AliyunMessageReceiver.java @@ -0,0 +1,116 @@ +package com.aoleyun.os.push.alipush; + +import android.content.Context; +import android.util.Log; + +import com.alibaba.sdk.android.push.MessageReceiver; +import com.alibaba.sdk.android.push.notification.CPushMessage; +import com.aoleyun.os.push.PushManager; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import java.util.Map; + +/** + * @author: 正纬 + * @since: 15/4/9 + * @version: 1.1 + * @feature: 用于接收推送的通知和消息 + */ +public class AliyunMessageReceiver extends MessageReceiver { + // 消息接收部分的LOG_TAG + public static final String TAG = AliyunMessageReceiver.class.getSimpleName(); + + /** + * 推送通知的回调方法 + * + * @param context + * @param title + * @param summary + * @param extraMap + */ + @Override + public void onNotification(Context context, String title, String summary, Map extraMap) { + // TODO 处理推送通知 + if (null != extraMap) { + for (Map.Entry entry : extraMap.entrySet()) { + Log.i(TAG, "@Get diy param : Key=" + entry.getKey() + " , Value=" + entry.getValue()); + } + } else { + Log.i(TAG, "@收到通知 && 自定义消息为空"); + } + Log.i(TAG, "收到一条推送通知 : " + title + ", summary:" + summary); + } + + /** + * 应用处于前台时通知到达回调。注意:该方法仅对自定义样式通知有效,相关详情请参考https://help.aliyun.com/document_detail/30066.html?spm=5176.product30047.6.620.wjcC87#h3-3-4-basiccustompushnotification-api + * + * @param context + * @param title + * @param summary + * @param extraMap + * @param openType + * @param openActivity + * @param openUrl + */ + @Override + protected void onNotificationReceivedInApp(Context context, String title, String summary, Map extraMap, int openType, String openActivity, String openUrl) { + Log.i(TAG, "onNotificationReceivedInApp : " + " : " + title + " : " + summary + " " + extraMap + " : " + openType + " : " + openActivity + " : " + openUrl); + } + + /** + * 推送消息的回调方法 + * + * @param context + * @param cPushMessage + */ + @Override + public void onMessage(Context context, CPushMessage cPushMessage) { + Log.e(TAG, "收到一条推送消息 : " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent()); + String title = cPushMessage.getTitle(); + String content = cPushMessage.getContent(); + JsonObject extrasJson = JsonParser.parseString(content).getAsJsonObject(); + String extras = ""; + if (extrasJson.get("extras") != null) { + extras = extrasJson.get("extras").toString(); + } + PushManager.getInstance().setPushContent(title, extras); + } + + /** + * 从通知栏打开通知的扩展处理 + * + * @param context + * @param title + * @param summary + * @param extraMap + */ + @Override + public void onNotificationOpened(Context context, String title, String summary, String extraMap) { + Log.i(TAG, "onNotificationOpened : " + " : " + title + " : " + summary + " : " + extraMap); + } + + /** + * 通知删除回调 + * + * @param context + * @param messageId + */ + @Override + public void onNotificationRemoved(Context context, String messageId) { + Log.i(TAG, "onNotificationRemoved : " + messageId); + } + + /** + * 无动作通知点击回调。当在后台或阿里云控制台指定的通知动作为无逻辑跳转时,通知点击回调为onNotificationClickedWithNoAction而不是onNotificationOpened + * + * @param context + * @param title + * @param summary + * @param extraMap + */ + @Override + protected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) { + Log.i(TAG, "onNotificationClickedWithNoAction : " + " : " + title + " : " + summary + " : " + extraMap); + } +} \ No newline at end of file diff --git a/src/com/aoleyun/os/tpush/Constants.java b/src/com/aoleyun/os/push/tpush/Constants.java similarity index 93% rename from src/com/aoleyun/os/tpush/Constants.java rename to src/com/aoleyun/os/push/tpush/Constants.java index 05d9213..74b488f 100644 --- a/src/com/aoleyun/os/tpush/Constants.java +++ b/src/com/aoleyun/os/push/tpush/Constants.java @@ -1,4 +1,4 @@ -package com.aoleyun.os.tpush; +package com.aoleyun.os.push.tpush; /** * Created by chacewang on 2019/7/5. diff --git a/src/com/aoleyun/os/tpush/MessageReceiver.java b/src/com/aoleyun/os/push/tpush/MessageReceiver.java similarity index 93% rename from src/com/aoleyun/os/tpush/MessageReceiver.java rename to src/com/aoleyun/os/push/tpush/MessageReceiver.java index 91c2137..a8773d5 100644 --- a/src/com/aoleyun/os/tpush/MessageReceiver.java +++ b/src/com/aoleyun/os/push/tpush/MessageReceiver.java @@ -1,4 +1,4 @@ -package com.aoleyun.os.tpush; +package com.aoleyun.os.push.tpush; import android.content.ContentResolver; import android.content.Context; @@ -9,8 +9,9 @@ import android.util.Log; import android.widget.Toast; import com.aoleyun.os.network.HTTPInterface; -import com.aoleyun.os.tpush.common.NotificationService; -import com.aoleyun.os.tpush.po.XGNotification; +import com.aoleyun.os.push.PushManager; +import com.aoleyun.os.push.tpush.common.NotificationService; +import com.aoleyun.os.push.tpush.po.XGNotification; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.tencent.android.tpush.NotificationAction; @@ -24,20 +25,12 @@ import java.text.SimpleDateFormat; import java.util.Calendar; public class MessageReceiver extends XGPushBaseReceiver { + private static final String TAG = MessageReceiver.class.getSimpleName(); + public static final String UPDATE_LISTVIEW_ACTION = "com.qq.xgdemo.activity.UPDATE_LISTVIEW"; public static final String TEST_ACTION = "com.qq.xgdemo.activity.TEST_ACTION"; public static final String LogTag = "xg.test"; - private static final String TAG = MessageReceiver.class.getSimpleName(); - - /*删除应用*/ - private final String UPDATEPASSWD = "39"; - - - private Context mContext; - private ContentResolver mResolver; - private PackageManager mPackageManager; - /** * 消息透传处理 * @@ -46,9 +39,6 @@ public class MessageReceiver extends XGPushBaseReceiver { */ @Override public void onTextMessage(Context context, XGPushTextMessage message) { - this.mContext = context; - this.mResolver = context.getContentResolver(); - this.mPackageManager = context.getPackageManager(); String text = "收到消息:" + message.toString(); // 获取自定义key-value String customContent = message.getCustomContent(); @@ -290,10 +280,6 @@ public class MessageReceiver extends XGPushBaseReceiver { // Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); } - private int changeNum(int paramInt) { - return paramInt == 0 ? 1 : 0; - } - private void processCustomMessage(Context context, XGPushTextMessage message) { if (context == null || message == null) { return; @@ -307,14 +293,7 @@ public class MessageReceiver extends XGPushBaseReceiver { if (extrasJson.get("extras") != null) { extras = extrasJson.get("extras").toString(); } - - switch (title) { - case UPDATEPASSWD: - HTTPInterface.getAppPasswd(); - break; - default: - } + PushManager.getInstance().setPushContent(title, extras); } - } diff --git a/src/com/aoleyun/os/tpush/common/DBOpenHelper.java b/src/com/aoleyun/os/push/tpush/common/DBOpenHelper.java similarity index 93% rename from src/com/aoleyun/os/tpush/common/DBOpenHelper.java rename to src/com/aoleyun/os/push/tpush/common/DBOpenHelper.java index 8621c98..2f30da5 100644 --- a/src/com/aoleyun/os/tpush/common/DBOpenHelper.java +++ b/src/com/aoleyun/os/push/tpush/common/DBOpenHelper.java @@ -1,4 +1,4 @@ -package com.aoleyun.os.tpush.common; +package com.aoleyun.os.push.tpush.common; import android.content.Context; import android.database.sqlite.SQLiteDatabase; diff --git a/src/com/aoleyun/os/tpush/common/NotificationService.java b/src/com/aoleyun/os/push/tpush/common/NotificationService.java similarity index 98% rename from src/com/aoleyun/os/tpush/common/NotificationService.java rename to src/com/aoleyun/os/push/tpush/common/NotificationService.java index 0fb4d7f..cb8eb2c 100644 --- a/src/com/aoleyun/os/tpush/common/NotificationService.java +++ b/src/com/aoleyun/os/push/tpush/common/NotificationService.java @@ -1,4 +1,4 @@ -package com.aoleyun.os.tpush.common; +package com.aoleyun.os.push.tpush.common; import android.content.ContentValues; import android.content.Context; @@ -6,7 +6,7 @@ import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; -import com.aoleyun.os.tpush.po.XGNotification; +import com.aoleyun.os.push.tpush.po.XGNotification; import java.util.ArrayList; import java.util.List; diff --git a/src/com/aoleyun/os/tpush/po/XGNotification.java b/src/com/aoleyun/os/push/tpush/po/XGNotification.java similarity index 97% rename from src/com/aoleyun/os/tpush/po/XGNotification.java rename to src/com/aoleyun/os/push/tpush/po/XGNotification.java index e3844e8..16e915f 100644 --- a/src/com/aoleyun/os/tpush/po/XGNotification.java +++ b/src/com/aoleyun/os/push/tpush/po/XGNotification.java @@ -1,4 +1,4 @@ -package com.aoleyun.os.tpush.po; +package com.aoleyun.os.push.tpush.po; public class XGNotification { private Integer id; diff --git a/src/com/aoleyun/os/service/MainService.java b/src/com/aoleyun/os/service/MainService.java index 35695d7..59f7014 100644 --- a/src/com/aoleyun/os/service/MainService.java +++ b/src/com/aoleyun/os/service/MainService.java @@ -183,7 +183,7 @@ public class MainService extends Service { //设置一个file文件 MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), fileBody); Map params = new HashMap<>(); - params.put("sn", Utils.getSerial()); + params.put("sn", Utils.getSerial(MainService.this)); params.put("createtime", String.valueOf(time)); NetInterfaceManager.getInstance().getScreenshotApi() .sendScreenshot(params, body) diff --git a/src/com/aoleyun/os/touch/ItemClickHandler.java b/src/com/aoleyun/os/touch/ItemClickHandler.java index eefc770..4e2191a 100644 --- a/src/com/aoleyun/os/touch/ItemClickHandler.java +++ b/src/com/aoleyun/os/touch/ItemClickHandler.java @@ -255,20 +255,6 @@ public class ItemClickHandler { "com.jiaoguanyi.store" }; - public static AppInformation getInfoFromPackageName(String packageName) { - List list; - AppInformation app = null; - StatisticsInfo statisticsInfo = new StatisticsInfo(BaseApplication.getInstance().getApplicationContext()); - list = statisticsInfo.getShowList(); - for (AppInformation appInformation : list) { - String name = appInformation.getPackageName(); - if (appInformation.getPackageName().equals(packageName)) { - return appInformation; - } - } - return app; - } - /** * Event handler for a folder icon click. * diff --git a/src/com/aoleyun/os/uiuiutils/JGYUtils.java b/src/com/aoleyun/os/uiuiutils/JGYUtils.java index b5ad746..3161e57 100644 --- a/src/com/aoleyun/os/uiuiutils/JGYUtils.java +++ b/src/com/aoleyun/os/uiuiutils/JGYUtils.java @@ -29,18 +29,18 @@ public class JGYUtils { private ContentResolver mResolver; - public static int UnknowPlatform = 0; - public static int MTKPlatform = 1; + public static final int UnknowPlatform = 0; + public static final int MTKPlatform = 1; // TODO: 2022/4/23 标签替换未完成 - public static int CubePlatform = 2; - public static int ZhanruiPlatform = 3; + public static final int CubePlatform = 2; + public static final int ZhanruiPlatform = 3; - public static String Other = "其他"; - public static String MTKTag = "MTK"; + public static final String Other = "其他"; + public static final String MTKTag = "MTK"; // TODO: 2022/4/23 标签替换未完成 - public static String CubeTag = "展锐cube"; - public static String ZhanruiTag = "展锐"; + public static final String CubeTag = "展锐cube"; + public static final String ZhanruiTag = "展锐"; private JGYUtils(Context context) { diff --git a/src/com/aoleyun/os/uiuiutils/Utils.java b/src/com/aoleyun/os/uiuiutils/Utils.java index beda636..7299936 100644 --- a/src/com/aoleyun/os/uiuiutils/Utils.java +++ b/src/com/aoleyun/os/uiuiutils/Utils.java @@ -7,30 +7,214 @@ import android.app.ActivityTaskManager; import android.app.IActivityTaskManager; import android.content.Context; import android.content.pm.UserInfo; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; import android.os.Build; import android.os.RemoteException; +import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; import com.aoleyun.os.BuildConfig; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; import java.lang.reflect.Method; +import java.net.NetworkInterface; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Locale; + +import vendor.mediatek.hardware.nvram.V1_0.INvram; import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; public class Utils { + public static String getAndroid10MAC(Context context) { +// if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) { +// return getMacAddress(context); +// } else { +// return getAndroid7MAC(); +// } + return getAllMacAddress(context); + } + + + /** + * 获取MAC地址 + * + * @param context + * @return + */ + public static String getAllMacAddress(Context context) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + return getMacDefault(context); + } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { + return getMacAddressM(); + } else { + return getMacFromHardware(); + } + } + + /** + * Android 6.0 之前(不包括6.0) + * + * @param context + * @return + */ + private static String getMacDefault(Context context) { + String mac = "未获取到设备Mac地址"; + if (context == null) { + return mac; + } + WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + WifiInfo info = null; + try { + info = wifi.getConnectionInfo(); + } catch (Exception e) { + e.printStackTrace(); + } + if (info == null) { + return mac; + } + mac = info.getMacAddress(); + if (!TextUtils.isEmpty(mac)) { + mac = mac.toUpperCase(Locale.ENGLISH); + } + + return mac; + } + + /** + * Android 6.0(包括) - Android 7.0(不包括) + * + * @return + */ + private static String getMacAddressM() { + String mac = "未获取到设备Mac地址"; + + try { + mac = new BufferedReader(new FileReader("/sys/class/net/wlan0/address")).readLine(); + } catch (IOException e) { + e.printStackTrace(); + } + return mac; + } + + /** + * 遍历循环所有的网络接口,找到接口是 wlan0 + * + * @return + */ + private static String getMacFromHardware() { + try { + List all = Collections.list(NetworkInterface.getNetworkInterfaces()); + + for (NetworkInterface nif : all) { + if (!nif.getName().equalsIgnoreCase("wlan0")) { + continue; + } + byte[] macBytes = nif.getHardwareAddress(); + StringBuilder res1 = new StringBuilder(); + for (byte b : macBytes) { + res1.append(String.format("%02X:", b)); + } + if (res1 != null) { + res1.deleteCharAt(res1.length() - 1); + } + return res1.toString(); + } + } catch (Exception e) { + e.printStackTrace(); + } + return "未获取到设备Mac地址"; + } + private static String TAG = Utils.class.getSimpleName(); + public static final String NOSN = "012345679ABCDEF"; + public static final String TECLAST_BRAND = "Teclast"; + /** * 获取设备序列号 * * @return */ - @SuppressLint({"MissingPermission", "NewApi"}) - public static String getSerial() { + public static String getSerial(Context context) { + if (TECLAST_BRAND.equalsIgnoreCase(Build.BRAND)) { + return getPushMac(context); + } else { + if (NOSN.equalsIgnoreCase(getSn())) { + return getIMEI(context); + } else { + return getSn(); + } + } + } + + public static String getPushMac(Context context) { + String macaddr = Utils.getMacAddrFromNvram(); + return macaddr.replace(":", "").toUpperCase(); + } + + //mh add start---- + private static final int MAC_ADDRESS_ID = 30; + private static final int MAC_ADDRESS_OFFSET = 4; + private static final int MAC_ADDRESS_DIGITS = 6; + private static final int MAX_ADDRESS_VALUE = 0xff; + private static final int INVALID_RSSI = -200; + + private static final String MAC_ADDRESS_FILENAME = "/mnt/vendor/nvdata/APCFG/APRDEB/WIFI"; + + private static String getMacAddrFromNvram() { + StringBuffer nvramBuf = new StringBuffer(); + try { + int i = 0; + String buff = null; + INvram agent = INvram.getService(); + if (agent == null) { + // mToast.setText("No support MAC address writing due to NVRAM"); + // mToast.show(); + Log.e("mh_mac", "NvRAMAgent is null"); + return ""; + } + try { + buff = agent.readFileByName( + MAC_ADDRESS_FILENAME, MAC_ADDRESS_OFFSET + MAC_ADDRESS_DIGITS); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + Log.i("mh_mac", "Raw data:" + buff); + if (buff.length() < 2 * (MAC_ADDRESS_OFFSET + MAC_ADDRESS_DIGITS)) { + // mToast.setText("The foramt of NVRAM is not correct"); + // mToast.show(); + return ""; + } + // Remove the \0 special character. + int macLen = buff.length() - 1; + for (i = MAC_ADDRESS_OFFSET * 2; i < macLen; i += 2) { + if ((i + 2) < macLen) { + nvramBuf.append(buff.substring(i, i + 2)); + nvramBuf.append(":"); + } else { + nvramBuf.append(buff.substring(i)); + } + } + Log.d("mh_mac", "buff:" + nvramBuf.toString()); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + return nvramBuf.toString(); + } + //mh add end------ + + @SuppressLint({"MissingPermission", "HardwareIds"}) + public static String getSn() { String serial = "unknow"; try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {//9.0+ @@ -44,11 +228,39 @@ public class Utils { } } catch (Exception e) { e.printStackTrace(); - Log.e("e", "读取设备序列号异常:" + e.toString()); + Log.e("getSerial", "读取设备序列号异常:" + e.toString()); } return serial; } + @SuppressLint("HardwareIds") + public static String getIMEI(Context context) { + String IMEI = "unknow"; + //获取手机设备号 + TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + //8.0及以后版本获取 + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + IMEI = TelephonyMgr.getDeviceId(); +// } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { +// try { +// Method method = TelephonyMgr.getClass().getMethod("getImei"); +// IMEI = (String) method.invoke(TelephonyMgr); +// } catch (Exception e) { +// e.printStackTrace(); +// Log.e("getIMEI", e.getMessage()); +// } +// IMEI = TelephonyMgr.getDeviceId(); + +// } else {//9.0到10.0获取 +// IMEI = Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); + } + Log.e("IMEI:", "IMEI: " + IMEI); + if (null == IMEI) { + return "-"; + } else { + return IMEI.toUpperCase(); + } + } /** * 清除所有最近记录 diff --git a/src/doc/MTKP20S.keystore b/src/doc/MTKP20S.keystore new file mode 100644 index 0000000000000000000000000000000000000000..1156f88138f04646c9b36610fd9a684c23b9aae9 GIT binary patch literal 2361 zcmd5-={wX77oMLPYcnBZEqk)n_>G3iQYng%EhJ@YOpIj^W6L^~qDVu$NS36DQ7Dyt z&14%9QFSI>LB&-HwG|A6ly(2n52h3*awsdk1*> zs)PQ!{LaEBBMJn<2?5ElZE!CapDGss15`K!0e}+%Bg3Xtww}gQ3y$@t;O>Tu*z(TK z@!9u(&R1n1Ec>M5mr`O8=bModx~D7ABnlpBYSL3m?cQM71kx1PnXbZ$20`ksykdcs zDIQ~@B&ScNWjAuz*Y4K}eNBCpe@1!IF@sfWr5lzrId7;Z@%~|yErgtzvm{eQD?it1 zi%iDR2*+~T!gRD%DCY##iK$04O|M!O?<{%*e+m~}v#!nRw{T=2rE;EJfv~cgst%?e zY+p@vw0vpIN4S(mSI>xjls;I;WogAM`YIaKt+Y6(qW$e+bOm%cfGhmuQL1D^V$=+; z^3vAm|;A(j=ElN3X*&g1mhL2=~+uyvnx{LDPtr;2 zFSHJXW?K>T9LAkrzn&i+q-syecJR=#gBQ%Cu-;cfi%NF5ac%sggxj z)$RA|@yCdb%|O(Ht8<3qLAI69tz5R1GY8t9)=AY7@kwNu^_=+jSTCAMMLY?%u_LJWxYIQS!=xEuO23(#C^SY(}!Va#-jFXt*5h|RrgRK*q($2CH zl^Zy%ZZa|KC8RfzwJl8b)t&)$<>1$UDc zPXzPd(CSjdm9M!gOs7vjQ>J^$_)DK>G6=0vdbjQM$rug6af`W8u4B|64Y!LNUP^6G z-Fqdv43eL%$ehJ3$@=?uxd+9(cvGxYzODF`x{qlXZtm;#@VimzNaS_3s#mTT@-)ml zXXflrF5QbT4`HxIXp@CL@@UV)>(x9Yn~INe6YNs65eddMQcp&nm#J`ruB4<^oGZIi zE-Khn`&-f|<-6x~0h-qa-EMF3(9YNJj(Mf+6XB@iFNf)h+0GLNn~N>%(1%@!wVpe; z8}(T>pW`0}{Qa@O9b#W$1!v>>;SPhEfrvvWlv@ghrT|46YJ@N1 zp8Z^sJ&vY3`?j(J8?jDw9hd4;Uduzqi|i9kov%+D9FTU+C0oS89sGV}(AUZHUCAEd zD#V!81(!s)hs@A9IFs z?q8bM%|`cOlbubhG6Iwou%-d3*Ry8ET$fKx%$dLl@5>W-9umC#85bZusS$*0$K^`Wr)OVo28c{JB;*!)nu!S59HAbm zkWpZF45yD?rC#ok_;k~FC|zz?rS&y`a`5aabbQ3X1a5rDkda=-;44C)|2mAEb|?){ z3j%>Ifn+EPBy;p;LpcBr4qnJx)Xk0G;!>p`f{Rxr#wcb30RVe;uV(ap^d69x3u*)7 z65`M|L+=9x{tzBGuOZ2W=w{$UbVCb*{C_lVIL`%lJTY_^X#U+gyAmIq>mr_L?Lt7q zLB2o29ys)(zQKR1K;gWec$_MPFz|MFEYU3grrV*EF-S zC@FBuvAvzzs(yJu>sV-jZg?1$ScOo5Xoi(dn%C(sbUNJ9ygg@<(I!*M>03fsjk8l7 z3}gye`(@1*abHs$-;rP8v~RKbs86`$Z15%6_AsU>*$ZKkdlXUMP_`vIRtI=NE%}4b z3B+0|>-5DQ5RQFxU%i%i1{P_AES^T4C5l4@p*=$5!8udD%b{|<6rYE};`&&ryLtGa zx$pUtF3!T$_nL4Sl4s2MQyfqL0z9<<%|OZB?U39H z6M-R{j;z!X(rYy{ThMf7*tA-ve<}=={u7pmiGdr|uds_W0!Dcqo!TPqR0&3a*Kl+Z0IE##2UtK9?~e)G$lfK%WbYUv)(`!TUN zLl0~n-xIvFeLiaBkXr?8NED7|vly3^EFEdl<(E4P7wS{_HTFSs%432XTe-}bZvG&d zfx}-ZxlmL6VGWs=SGgH0la&Q_w@t}OwTV1K#hBM9BU+TQ{Q56dZ`6?%tggO^5$baL zsAE=zY@P`{5i>oP&uZr`HYhD{Qts?wC#4HSjUf&Y(;!Z$_x4ozOPNVh@+mK@3Om9p WBLzOZn#xZ$*vGQNCovE8uKgQX@*^w& literal 0 HcmV?d00001