diff --git a/app/build.gradle b/app/build.gradle index 9b1e880..d2159d8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,5 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: "com.tencent.android.tpns" def appName() { return "CubeZYAppStore" @@ -18,8 +17,8 @@ android { minSdkVersion 26 targetSdkVersion 29 - versionCode 23 - versionName "1.3.1" + versionCode 48 + versionName "1.5.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -28,11 +27,6 @@ android { abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' } - - manifestPlaceholders = [ - XG_ACCESS_ID : "1500033122", - XG_ACCESS_KEY: "A5QBQVQ7KLQD", - ] } compileOptions { @@ -54,6 +48,14 @@ android { v2SigningEnabled false } + mtk12 { + storeFile file("keystore/mtkAndroid12.keystore") + storePassword "123456" + keyAlias "mtk12" + keyPassword "123456" + v2SigningEnabled false + } + cube8183 { storeFile file("keystore/TeclastMTK12.jks") storePassword "123456" @@ -70,6 +72,15 @@ android { v2SigningEnabled false } + Teclast8515 { + storeFile file("keystore/Teclast8515.keystore") + storePassword "123456" + keyAlias "Teclast8515" + keyPassword "123456" + v1SigningEnabled true + v2SigningEnabled true + } + iPlay50SE { storeFile file("keystore/iPlay50SE.keystore") storePassword "123456" @@ -96,6 +107,23 @@ android { keyPassword "android" v2SigningEnabled false } + + iPlay50miniPro { + storeFile file("keystore/iPlay50miniPro.jks") + storePassword "123456" + keyAlias "iplay50minipro" + keyPassword "123456" + v2SigningEnabled false + } + + iPlay40H { + storeFile file("keystore/iPlay40h.keystore") + storePassword "android" + keyAlias "platform" + keyPassword "android" + v1SigningEnabled true + v2SigningEnabled true + } } buildTypes { @@ -127,6 +155,34 @@ android { signingConfig signingConfigs.teclast8183 } + Teclast8515Debug.initWith(debug) + Teclast8515Debug { + buildConfigField "String", "platform", '"8515"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.Teclast8515 + } + + Teclast8515Release.initWith(release) + Teclast8515Release { + buildConfigField "String", "platform", '"8515"' + signingConfig signingConfigs.Teclast8515 + } + + iPlay50ProDebug.initWith(debug) + iPlay50ProDebug { + buildConfigField "String", "platform", '"MTK"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.mtk12 + } + + iPlay50ProRelease.initWith(release) + iPlay50ProRelease { + buildConfigField "String", "platform", '"MTK"' + signingConfig signingConfigs.mtk12 + } + iPlay50SEDebug.initWith(debug) iPlay50SEDebug { buildConfigField "String", "platform", '"ipaly50SE"' @@ -169,6 +225,34 @@ android { signingConfig signingConfigs.iPlay50mini } + iPlay50miniProDebug.initWith(debug) + iPlay50miniProDebug { + buildConfigField "String", "platform", '"miniG99"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.iPlay50miniPro + } + + iPlay50miniProRelease.initWith(release) + iPlay50miniProRelease { + buildConfigField "String", "platform", '"miniG99"' + signingConfig signingConfigs.iPlay50miniPro + } + + iPlay40HDebug.initWith(debug) + iPlay40HDebug { + buildConfigField "String", "platform", '"iplay40h"' + versionNameSuffix "-debug" + debuggable true + signingConfig signingConfigs.iPlay50mini + } + + iPlay40HRelease.initWith(release) + iPlay40HRelease { + buildConfigField "String", "platform", '"iplay40h"' + signingConfig signingConfigs.iPlay50mini + } + zhanRuiDebug.initWith(debug) zhanRuiDebug { debuggable true @@ -225,17 +309,23 @@ android { sourceSets { Cube8183Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' } Teclast8183Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' } + Teclast8515Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' } + iPlay50ProDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' } iPlay50SEDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' } iPlay50miniDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' } iPlay5013Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' } + iPlay50miniProDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' } zhanRuiDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' } debug { manifest.srcFile 'src/debug/AndroidManifest.xml' } Cube8183Release { manifest.srcFile 'src/main/AndroidManifest.xml' } Teclast8183Release { manifest.srcFile 'src/main/AndroidManifest.xml' } + Teclast8515Release { manifest.srcFile 'src/main/AndroidManifest.xml' } + iPlay50ProRelease { manifest.srcFile 'src/main/AndroidManifest.xml' } iPlay50SERelease { manifest.srcFile 'src/main/AndroidManifest.xml' } iPlay50miniRelease { manifest.srcFile 'src/main/AndroidManifest.xml' } iPlay5013Release { manifest.srcFile 'src/main/AndroidManifest.xml' } + iPlay50miniProRelease { manifest.srcFile 'src/main/AndroidManifest.xml' } zhanRuiRelease { manifest.srcFile 'src/main/AndroidManifest.xml' } release { manifest.srcFile 'src/main/AndroidManifest.xml' } } @@ -294,10 +384,6 @@ dependencies { implementation 'com.google.zxing:core:3.5.0' //MMKV implementation 'com.tencent:mmkv-static:1.2.13' - //腾讯移动推送 TPNS - implementation 'com.tencent.tpns:tpns:1.3.2.0-release' - //阿里云推送 - implementation 'com.aliyun.ams:alicloud-android-push:3.8.0' //banner图 implementation 'com.zhpan.library:bannerview:2.6.4' //更换字体框架 diff --git a/app/keystore/Teclast8515.keystore b/app/keystore/Teclast8515.keystore new file mode 100644 index 0000000..922a161 Binary files /dev/null and b/app/keystore/Teclast8515.keystore differ diff --git a/app/keystore/iPlay40h.keystore b/app/keystore/iPlay40h.keystore new file mode 100644 index 0000000..5961980 Binary files /dev/null and b/app/keystore/iPlay40h.keystore differ diff --git a/app/keystore/iPlay50miniPro.jks b/app/keystore/iPlay50miniPro.jks new file mode 100644 index 0000000..e5aeab8 Binary files /dev/null and b/app/keystore/iPlay50miniPro.jks differ diff --git a/app/keystore/mtkAndroid12.keystore b/app/keystore/mtkAndroid12.keystore new file mode 100644 index 0000000..860f30f Binary files /dev/null and b/app/keystore/mtkAndroid12.keystore differ diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index 41f6d6d..b53d005 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -1,6 +1,5 @@ @@ -12,34 +11,14 @@ - - - - - - - - - - - - - - - - - - @@ -102,8 +81,6 @@ android:name="com.uiui.zyappstore.activity.DownloadManagerActivity" android:screenOrientation="behind" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f079c21..24f89a5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ @@ -12,34 +11,14 @@ - - - - - - - - - - - - - - - - - - @@ -102,9 +81,6 @@ android:name="com.uiui.zyappstore.activity.DownloadManagerActivity" android:screenOrientation="behind" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/uiui/zyappstore/activity/ClassAppActivity.java b/app/src/main/java/com/uiui/zyappstore/activity/ClassAppActivity.java index 115ca90..36830f0 100644 --- a/app/src/main/java/com/uiui/zyappstore/activity/ClassAppActivity.java +++ b/app/src/main/java/com/uiui/zyappstore/activity/ClassAppActivity.java @@ -15,7 +15,7 @@ import com.uiui.zyappstore.adapter.AppAdapter; import com.uiui.zyappstore.base.BaseActivity; import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.BaseResponse; -import com.uiui.zyappstore.common.CommonDatas; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.network.NetInterfaceManager; import com.uiui.zyappstore.utils.ToastUtil; @@ -59,7 +59,7 @@ public class ClassAppActivity extends BaseActivity { if (intent == null) { return; } - String className = intent.getStringExtra(CommonDatas.APP_CLASS_NAME); + String className = intent.getStringExtra(CommonConfig.APP_CLASS_NAME); if (!TextUtils.isEmpty(className)) { mMoreappTvTitle.setText(className); } @@ -69,7 +69,7 @@ public class ClassAppActivity extends BaseActivity { ToastUtil.show("功能暂未开放"); } }); - int classId = intent.getIntExtra(CommonDatas.APP_CLASS_ID, 0); + int classId = intent.getIntExtra(CommonConfig.APP_CLASS_ID, 0); mAppAdapter = new AppAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2); mRecyclerView.setLayoutManager(gridLayoutManager); diff --git a/app/src/main/java/com/uiui/zyappstore/activity/DetailsActivity.java b/app/src/main/java/com/uiui/zyappstore/activity/DetailsActivity.java index dda360e..51ee697 100644 --- a/app/src/main/java/com/uiui/zyappstore/activity/DetailsActivity.java +++ b/app/src/main/java/com/uiui/zyappstore/activity/DetailsActivity.java @@ -4,6 +4,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.view.View; @@ -31,12 +32,14 @@ import com.uiui.zyappstore.base.BaseActivity; import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.BaseResponse; import com.uiui.zyappstore.bean.GlideCircleWithBorder; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.helper.CustomSnapHelper; import com.uiui.zyappstore.network.NetInterfaceManager; import com.uiui.zyappstore.utils.ApkUtils; import com.uiui.zyappstore.utils.FileUtils; import com.uiui.zyappstore.utils.StorageUtils; import com.uiui.zyappstore.utils.ToastUtil; +import com.uiui.zyappstore.utils.Utils; import java.io.File; import java.util.ArrayList; @@ -139,6 +142,10 @@ public class DetailsActivity extends BaseActivity { tv_download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + if (!Utils.canDownloadApp(DetailsActivity.this)) { + ToastUtil.show("应用市场已被禁止安装"); + return; + } if (installed && !update) { ApkUtils.openApp(DetailsActivity.this, appInfo.getApp_package()); } else { diff --git a/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java b/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java index 42bedbf..003d493 100644 --- a/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java +++ b/app/src/main/java/com/uiui/zyappstore/activity/MainActivity.java @@ -26,9 +26,6 @@ import com.uiui.zyappstore.bean.BaseResponse; import com.uiui.zyappstore.bean.UserInfo; import com.uiui.zyappstore.fragment.FeaturedFragment; import com.uiui.zyappstore.network.NetInterfaceManager; -import com.uiui.zyappstore.service.GuardService; -import com.uiui.zyappstore.service.DownloadService; -import com.uiui.zyappstore.service.StepService; import com.uiui.zyappstore.service.main.MainService; import com.uiui.zyappstore.utils.JGYUtils; import com.uiui.zyappstore.utils.SPUtils; @@ -67,7 +64,6 @@ public class MainActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG, "onCreate"); - startService(new Intent(MainActivity.this, DownloadService.class)); starService(); JGYUtils.getInstance().checkLocalExternalFiles(); } @@ -107,10 +103,7 @@ public class MainActivity extends BaseActivity { } private void starService() { - startService(new Intent(this, GuardService.class)); - startService(new Intent(this, StepService.class)); startService(new Intent(this, MainService.class)); - startService(new Intent(this, DownloadService.class)); } private void initTabLayout() { diff --git a/app/src/main/java/com/uiui/zyappstore/activity/MoreAppActivity.java b/app/src/main/java/com/uiui/zyappstore/activity/MoreAppActivity.java index cea4e91..7392950 100644 --- a/app/src/main/java/com/uiui/zyappstore/activity/MoreAppActivity.java +++ b/app/src/main/java/com/uiui/zyappstore/activity/MoreAppActivity.java @@ -15,7 +15,7 @@ import com.uiui.zyappstore.adapter.AppAdapter; import com.uiui.zyappstore.base.BaseActivity; import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.BaseResponse; -import com.uiui.zyappstore.common.CommonDatas; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.fragment.FeaturedFragment; import com.uiui.zyappstore.network.NetInterfaceManager; import com.uiui.zyappstore.utils.ToastUtil; @@ -56,7 +56,7 @@ public class MoreAppActivity extends BaseActivity { finish(); return; } - String extra = intent.getStringExtra(CommonDatas.MORE_APP_TITLE); + String extra = intent.getStringExtra(CommonConfig.MORE_APP_TITLE); if (!TextUtils.isEmpty(extra)) { mMoreappTvTitle.setText(extra); } diff --git a/app/src/main/java/com/uiui/zyappstore/activity/SearcherActivity.java b/app/src/main/java/com/uiui/zyappstore/activity/SearcherActivity.java index 274a155..4b93f51 100644 --- a/app/src/main/java/com/uiui/zyappstore/activity/SearcherActivity.java +++ b/app/src/main/java/com/uiui/zyappstore/activity/SearcherActivity.java @@ -19,6 +19,7 @@ import com.uiui.zyappstore.adapter.AppAdapter; import com.uiui.zyappstore.base.BaseActivity; import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.BaseResponse; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.network.NetInterfaceManager; import com.uiui.zyappstore.utils.ToastUtil; @@ -130,7 +131,7 @@ public class SearcherActivity extends BaseActivity { if (TextUtils.isEmpty(text)) { getAllAppPackageName(); } else { - int setting_admin_app = Settings.System.getInt(getContentResolver(), "setting_admin_app", 1); + int setting_admin_app = Settings.System.getInt(getContentResolver(), CommonConfig.APP_ADMIN, 1); if (setting_admin_app == 0) { ToastUtil.debugShow("搜索功能已禁用"); } else { diff --git a/app/src/main/java/com/uiui/zyappstore/adapter/AppAdapter.java b/app/src/main/java/com/uiui/zyappstore/adapter/AppAdapter.java index 9a24f92..00db57f 100644 --- a/app/src/main/java/com/uiui/zyappstore/adapter/AppAdapter.java +++ b/app/src/main/java/com/uiui/zyappstore/adapter/AppAdapter.java @@ -27,6 +27,7 @@ import com.uiui.zyappstore.R; import com.uiui.zyappstore.activity.DetailsActivity; import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.GlideCircleWithBorder; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.utils.ApkUtils; import com.uiui.zyappstore.utils.FileUtils; import com.uiui.zyappstore.utils.StorageUtils; @@ -137,9 +138,7 @@ public class AppAdapter extends RecyclerView.Adapter { if (installed && !update) { ApkUtils.openApp(mContext, appInfo.getApp_package()); } else { - int is_storeinstall = Settings.Global.getInt(mContext.getContentResolver(), "setting_is_storeinstall", 0); - Log.e(TAG, "onClick: " + is_storeinstall); - if (is_storeinstall == 0) { + if (!Utils.canDownloadApp(mContext)) { ToastUtil.show("应用市场已被禁止安装"); return; } diff --git a/app/src/main/java/com/uiui/zyappstore/base/BaseApplication.java b/app/src/main/java/com/uiui/zyappstore/base/BaseApplication.java index 6bb5fae..ed45b77 100644 --- a/app/src/main/java/com/uiui/zyappstore/base/BaseApplication.java +++ b/app/src/main/java/com/uiui/zyappstore/base/BaseApplication.java @@ -11,9 +11,6 @@ import android.util.Log; import androidx.annotation.NonNull; -import com.alibaba.sdk.android.push.CloudPushService; -import com.alibaba.sdk.android.push.CommonCallback; -import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory; import com.arialyy.aria.core.Aria; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator; @@ -23,22 +20,14 @@ import com.scwang.smartrefresh.layout.api.RefreshHeader; import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.footer.ClassicsFooter; import com.scwang.smartrefresh.layout.header.ClassicsHeader; -import com.tencent.android.tpush.XGIOperateCallback; -import com.tencent.android.tpush.XGPushConfig; -import com.tencent.android.tpush.XGPushManager; import com.tencent.mmkv.MMKV; import com.uiui.zyappstore.R; import com.uiui.zyappstore.manager.ConnectManager; import com.uiui.zyappstore.network.NetInterfaceManager; -import com.uiui.zyappstore.push.PushManager; import com.uiui.zyappstore.receiver.AppManagerReceiver; import com.uiui.zyappstore.utils.JGYUtils; import com.uiui.zyappstore.utils.LogUtils; import com.uiui.zyappstore.utils.ToastUtil; -import com.uiui.zyappstore.utils.Utils; - -import java.util.ArrayList; -import java.util.List; /** * Created by asus on 2017/10/27. @@ -73,9 +62,6 @@ public class BaseApplication extends Application { Log.i(TAG, "mmkv root: " + rootDir); JGYUtils.init(this); - PushManager.init(this); - tPushInit(); - aliyunPushInit(); ToastUtil.init(this); ConnectManager.init(this); Aria.init(this); @@ -88,91 +74,8 @@ public class BaseApplication extends Application { registAppReceive(); NetInterfaceManager.init(this); JGYUtils.hookWebView(); - - //全局字体初始化 -// CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() -// // .setDefaultFontPath("fonts/1234.ttf") -// .setDefaultFontPath("fonts/SourceHanSansCN-ExtraLight.ttf") -//// .setDefaultFontPath("fonts/test.ttf") -// .setFontAttrId(R.attr.fontPath) -// .build() -// ); } - 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(getApplicationContext(), 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 void aliyunPushInit() { - PushServiceFactory.init(this); - final CloudPushService pushService = PushServiceFactory.getCloudPushService(); - pushService.setLogLevel(CloudPushService.LOG_DEBUG); - pushService.register(this, new CommonCallback() { - @Override - public void onSuccess(String response) { - Log.e("AliyunPush", "init cloudchannel success"); - Log.e("AliyunPush", "init cloudchannel success " + pushService.getDeviceId()); - } - - @Override - public void onFailed(String errorCode, String errorMessage) { - Log.e("AliyunPush", "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage); - } - }); - String account = Utils.getSerial(); - pushService.bindAccount(account, new CommonCallback() { - @Override - public void onSuccess(String s) { - Log.e("AliyunPush", "bind account " + account + " success\n"); - } - - @Override - public void onFailed(String errorCode, String errorMsg) { - Log.e("AliyunPush", "bind account " + account + " failed." + - "errorCode: " + errorCode + ", errorMsg:" + errorMsg); - } - }); - String alias = Utils.getSerial(); - pushService.addAlias(account, new CommonCallback() { - @Override - public void onSuccess(String s) { - Log.e("AliyunPush", "add alias " + alias + " success\n"); - } - - @Override - public void onFailed(String errorCode, String errorMsg) { - Log.e("AliyunPush", "add alias " + alias + " failed." + - "errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n"); - } - }); - } - - private AppManagerReceiver mAppManagerReceiver; private void registAppReceive() { diff --git a/app/src/main/java/com/uiui/zyappstore/common/CommonConfig.java b/app/src/main/java/com/uiui/zyappstore/common/CommonConfig.java new file mode 100644 index 0000000..2952e00 --- /dev/null +++ b/app/src/main/java/com/uiui/zyappstore/common/CommonConfig.java @@ -0,0 +1,19 @@ +package com.uiui.zyappstore.common; + + +public class CommonConfig { + public static final String MMKV_ID = "InterProcessKV"; + + public static final String FLAG_FIRST_ENTER = "iflytek_first_enter"; + + public static final String MORE_APP_TITLE = "moreAppTitle"; + public static final String APP_CLASS_ID = "class_id"; + public static final String APP_CLASS_NAME = "class_name"; + + /*应用市场是否禁止下载*/ + public static final String APP_STORE_INSTALL = "iflytek_setting_is_storeinstall"; + /*是否禁止应用打开*/ + public static final String APP_INSTALLATION = "iflytek_setting_other_appInstaller"; + /*是否为管理员app*/ + public static final String APP_ADMIN = "iflytek_setting_admin_app"; +} diff --git a/app/src/main/java/com/uiui/zyappstore/common/CommonDatas.java b/app/src/main/java/com/uiui/zyappstore/common/CommonDatas.java deleted file mode 100644 index 193bf50..0000000 --- a/app/src/main/java/com/uiui/zyappstore/common/CommonDatas.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.uiui.zyappstore.common; - - -public class CommonDatas { - public static final String FLAG_FIRST_ENTER = "qch_first_enter"; - - public static final String MORE_APP_TITLE = "moreAppTitle"; - public static final String APP_CLASS_ID = "class_id"; - public static final String APP_CLASS_NAME = "class_name"; -} diff --git a/app/src/main/java/com/uiui/zyappstore/disklrucache/CacheHelper.java b/app/src/main/java/com/uiui/zyappstore/disklrucache/CacheHelper.java index 69eb96e..907f41f 100644 --- a/app/src/main/java/com/uiui/zyappstore/disklrucache/CacheHelper.java +++ b/app/src/main/java/com/uiui/zyappstore/disklrucache/CacheHelper.java @@ -8,6 +8,7 @@ import android.util.Log; import com.jakewharton.disklrucache.DiskLruCache; import com.tencent.mmkv.MMKV; +import com.uiui.zyappstore.common.CommonConfig; import org.json.JSONArray; import org.json.JSONException; @@ -30,7 +31,7 @@ import java.io.Serializable; public class CacheHelper { private static final String TAG = "DiskLruCacheHelper"; - private MMKV mMMKV = MMKV.defaultMMKV(); + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private static final String DIR_NAME = "diskCache"; private static final int MAX_COUNT = 1024 * 1024 * 1024; diff --git a/app/src/main/java/com/uiui/zyappstore/fragment/FeaturedFragment.java b/app/src/main/java/com/uiui/zyappstore/fragment/FeaturedFragment.java index 56a30a4..82af467 100644 --- a/app/src/main/java/com/uiui/zyappstore/fragment/FeaturedFragment.java +++ b/app/src/main/java/com/uiui/zyappstore/fragment/FeaturedFragment.java @@ -9,7 +9,6 @@ import android.content.res.Resources; import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.provider.Settings; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; @@ -34,7 +33,6 @@ import com.bumptech.glide.request.transition.Transition; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.uiui.zyappstore.R; import com.uiui.zyappstore.activity.ClassAppActivity; -import com.uiui.zyappstore.activity.ManagerAppActivity; import com.uiui.zyappstore.activity.MoreAppActivity; import com.uiui.zyappstore.adapter.AppAdapter; import com.uiui.zyappstore.adapter.BannerViewHolder; @@ -45,7 +43,7 @@ import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.Banner; import com.uiui.zyappstore.bean.BaseResponse; import com.uiui.zyappstore.bean.ImageUrl; -import com.uiui.zyappstore.common.CommonDatas; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.network.NetInterfaceManager; import com.uiui.zyappstore.utils.DensityUtil; import com.uiui.zyappstore.utils.LogUtils; @@ -224,7 +222,7 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager @Override public void onClick(View v) { Intent intent = new Intent(mContext, MoreAppActivity.class); - intent.putExtra(CommonDatas.MORE_APP_TITLE, EXCLUSIVE_APP); + intent.putExtra(CommonConfig.MORE_APP_TITLE, EXCLUSIVE_APP); startActivity(intent); } }); @@ -232,7 +230,7 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager @Override public void onClick(View v) { Intent intent = new Intent(mContext, MoreAppActivity.class); - intent.putExtra(CommonDatas.MORE_APP_TITLE, POPULAR_APP); + intent.putExtra(CommonConfig.MORE_APP_TITLE, POPULAR_APP); startActivity(intent); } }); @@ -619,8 +617,8 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager int classId = appClassBean.getId(); String className = appClassBean.getName(); Intent intent = new Intent(getActivity(), ClassAppActivity.class); - intent.putExtra(CommonDatas.APP_CLASS_ID, classId); - intent.putExtra(CommonDatas.APP_CLASS_NAME, className); + intent.putExtra(CommonConfig.APP_CLASS_ID, classId); + intent.putExtra(CommonConfig.APP_CLASS_NAME, className); startActivity(intent); } diff --git a/app/src/main/java/com/uiui/zyappstore/manager/ConnectManager.java b/app/src/main/java/com/uiui/zyappstore/manager/ConnectManager.java index 12a879d..ab72014 100644 --- a/app/src/main/java/com/uiui/zyappstore/manager/ConnectManager.java +++ b/app/src/main/java/com/uiui/zyappstore/manager/ConnectManager.java @@ -5,6 +5,7 @@ import android.content.Context; import android.util.Log; import com.tencent.mmkv.MMKV; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.utils.TimeUtils; public class ConnectManager { @@ -30,7 +31,7 @@ public class ConnectManager { @SuppressLint("StaticFieldLeak") private static ConnectManager sInstance; private Context mContext; - private MMKV mMMKV = MMKV.defaultMMKV(); + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private ConnectManager(Context context) { if (context == null) { diff --git a/app/src/main/java/com/uiui/zyappstore/network/HTTPInterface.java b/app/src/main/java/com/uiui/zyappstore/network/HTTPInterface.java index 7c1095a..ffe42c4 100644 --- a/app/src/main/java/com/uiui/zyappstore/network/HTTPInterface.java +++ b/app/src/main/java/com/uiui/zyappstore/network/HTTPInterface.java @@ -21,12 +21,7 @@ import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.schedulers.Schedulers; - public class HTTPInterface { - private static final int GET_ALL_APPINFO = 0; - private static final int GET_USERINFO = 1; - private static final int GET_SORTAPP = 2; - public static void checkUpdate(final Context context, String packageName, String versionCode) { NetInterfaceManager.getInstance() @@ -37,11 +32,12 @@ public class HTTPInterface { .subscribe(new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { - + Log.e("checkUpdate", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse appInfoBaseResponse) { + Log.e("checkUpdate", "onNext: " + appInfoBaseResponse); int code = appInfoBaseResponse.code; if (code == 200) { AppInfo appInfo = appInfoBaseResponse.data; @@ -62,10 +58,9 @@ public class HTTPInterface { @Override public void onComplete() { - + Log.e("checkUpdate", "onComplete: "); } }); - } public static void checkUpdate(Context context) { diff --git a/app/src/main/java/com/uiui/zyappstore/network/NetInterfaceManager.java b/app/src/main/java/com/uiui/zyappstore/network/NetInterfaceManager.java index b2f9933..f9055db 100644 --- a/app/src/main/java/com/uiui/zyappstore/network/NetInterfaceManager.java +++ b/app/src/main/java/com/uiui/zyappstore/network/NetInterfaceManager.java @@ -5,16 +5,12 @@ import android.content.Context; import android.os.Environment; 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.tencent.android.tpush.XGIOperateCallback; -import com.tencent.android.tpush.XGPushManager; import com.tencent.mmkv.MMKV; import com.uiui.zyappstore.bean.AppClassBean; import com.uiui.zyappstore.bean.AppInfo; import com.uiui.zyappstore.bean.Banner; import com.uiui.zyappstore.bean.BaseResponse; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.disklrucache.CacheHelper; import com.uiui.zyappstore.network.api.AdminAppApi; import com.uiui.zyappstore.network.api.AdminAppClassApi; @@ -54,7 +50,7 @@ public class NetInterfaceManager { private static NetInterfaceManager sInstance; private Context mContext; private Retrofit mRetrofit; - private MMKV mMMKV = MMKV.defaultMMKV(); + private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); private OkHttpClient okHttpClient; private CacheHelper cacheHelper; @@ -218,6 +214,8 @@ public class NetInterfaceManager { set.add(JGYUtils.iPlayMiniTag); } else if (platform == JGYUtils.iPlay5013Platform) { set.add(JGYUtils.iPlay5013Tag); + } else if (platform == JGYUtils.iPlay50miniProPlatform) { + set.add(JGYUtils.iPlay50miniProTag); } }); setpushTag(set); @@ -225,30 +223,30 @@ public class NetInterfaceManager { } private void setpushTag(Set tagSets) { - XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, 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); - } - }); - 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"); - } - }); +// XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, 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); +// } +// }); +// 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/app/src/main/java/com/uiui/zyappstore/push/PushManager.java b/app/src/main/java/com/uiui/zyappstore/push/PushManager.java deleted file mode 100644 index de90ba9..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/PushManager.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.uiui.zyappstore.push; - -import android.annotation.SuppressLint; -import android.content.ContentResolver; -import android.content.Context; -import android.text.TextUtils; - -import com.arialyy.aria.core.Aria; -import com.arialyy.aria.core.download.DownloadEntity; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.uiui.zyappstore.disklrucache.CacheHelper; -import com.uiui.zyappstore.utils.FileUtils; -import com.uiui.zyappstore.utils.JGYUtils; -import com.uiui.zyappstore.utils.ToastUtil; - -import java.io.File; -import java.util.List; - -public class PushManager { - private static final String TAG = PushManager.class.getSimpleName(); - - @SuppressLint("StaticFieldLeak") - private static PushManager sInstance; - private Context mContext; - private ContentResolver mResolver; - private CacheHelper mCacheHelper; - - private PushManager(Context context) { - if (context == null) { - throw new RuntimeException("Context is NULL"); - } - this.mContext = context; - this.mResolver = context.getContentResolver(); - this.mCacheHelper = new CacheHelper(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; - } - - // 9.强制安装应用 - private static final String ACTION_FORCE_INSTALLAPK = "9"; - - public void setPushContent(String title, String extras) { - switch (title) { - case ACTION_FORCE_INSTALLAPK: - forceInstallApk( extras); - break; - default: - } - } - - private void forceInstallApk(String jsonString) { - if (TextUtils.isEmpty(jsonString)) { - return; - } - JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); - final String packages = jsonObject.get("package").getAsString(); - ToastUtil.debugShow("收到应用安装消息:包名" + packages); - String url = jsonObject.get("url").getAsString(); - if (TextUtils.isEmpty(url)) { - return; - } - if (Aria.download(this).taskExists(url)) { - List entity = Aria.download(this).getDownloadEntity(url); - for (DownloadEntity downloadEntity : entity) { - Aria.download(this).load(downloadEntity.getId()).cancel(true); - } - } - File file = new File(JGYUtils.getInstance().getDownLoadPath()); - file.mkdirs(); - FileUtils.ariaDownload(mContext, url, jsonObject); - Aria.download(this).resumeAllTask(); - } -} diff --git a/app/src/main/java/com/uiui/zyappstore/push/alipush/AliMessageIntentService.java b/app/src/main/java/com/uiui/zyappstore/push/alipush/AliMessageIntentService.java deleted file mode 100644 index 58e371b..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/alipush/AliMessageIntentService.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.uiui.zyappstore.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/app/src/main/java/com/uiui/zyappstore/push/alipush/AliyunMessageReceiver.java b/app/src/main/java/com/uiui/zyappstore/push/alipush/AliyunMessageReceiver.java deleted file mode 100644 index 37a04d0..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/alipush/AliyunMessageReceiver.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.uiui.zyappstore.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.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.uiui.zyappstore.push.PushManager; - -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/app/src/main/java/com/uiui/zyappstore/push/tpush/Constants.java b/app/src/main/java/com/uiui/zyappstore/push/tpush/Constants.java deleted file mode 100644 index 8984373..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/tpush/Constants.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.uiui.zyappstore.push.tpush; - -/** - * Created by chacewang on 2019/7/5. - */ - -public class Constants { - public static final int TEST_LOCAL_NOTIFICATION = 1; - public static final int TEST_NOTIFICATION = 2; - public static final int TEST_SET_TAG = 3; - public static final int TEST_DEL_TAG = 4; - public static final int TEST_SET_ACCOUNT = 5; - public static final int TEST_DEL_ACCOUNT = 6; - - public static final String LOCAL_NOTIFICATION_TITLE = "localtest"; - public static final String TEST_TAG_NAME = "DiagnosisTag"; -} diff --git a/app/src/main/java/com/uiui/zyappstore/push/tpush/MessageReceiver.java b/app/src/main/java/com/uiui/zyappstore/push/tpush/MessageReceiver.java deleted file mode 100644 index 393806e..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/tpush/MessageReceiver.java +++ /dev/null @@ -1,313 +0,0 @@ -package com.uiui.zyappstore.push.tpush; - -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.text.TextUtils; -import android.util.Log; -import android.widget.Toast; - -import com.arialyy.aria.core.Aria; -import com.arialyy.aria.core.download.DownloadEntity; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.tencent.android.tpush.NotificationAction; -import com.tencent.android.tpush.XGPushBaseReceiver; -import com.tencent.android.tpush.XGPushClickedResult; -import com.tencent.android.tpush.XGPushRegisterResult; -import com.tencent.android.tpush.XGPushShowedResult; -import com.tencent.android.tpush.XGPushTextMessage; -import com.uiui.zyappstore.push.PushManager; -import com.uiui.zyappstore.push.tpush.common.NotificationService; -import com.uiui.zyappstore.push.tpush.po.XGNotification; -import com.uiui.zyappstore.utils.FileUtils; -import com.uiui.zyappstore.utils.JGYUtils; -import com.uiui.zyappstore.utils.ToastUtil; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.List; - - -public class MessageReceiver extends XGPushBaseReceiver { - 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 Context mContext; - private ContentResolver mResolver; - private PackageManager mPackageManager; - - /** - * 消息透传处理 - * - * @param context - * @param message 解析自定义的 JSON - */ - @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(); - if (customContent != null && customContent.length() != 0) { - JsonObject obj = JsonParser.parseString(customContent).getAsJsonObject(); - // key1为前台配置的key - if (!TextUtils.isEmpty(obj.get("key").getAsString())) { - String value = obj.get("key").getAsString(); - Log.d(LogTag, "get custom value:" + value); - } - // ... - } - // APP自主处理消息的过程... - Log.e(LogTag, text); - show(context, text); - processCustomMessage(context, message); - } - - /** - * 通知展示 - * - * @param context - * @param notifiShowedRlt 包含通知的内容 - */ - @Override - public void onNotificationShowedResult(Context context, XGPushShowedResult notifiShowedRlt) { - if (context == null || notifiShowedRlt == null) { - return; - } - XGNotification notific = new XGNotification(); - notific.setMsg_id(notifiShowedRlt.getMsgId()); - notific.setTitle(notifiShowedRlt.getTitle()); - notific.setContent(notifiShowedRlt.getContent()); - // notificationActionType==1为Activity,2为url,3为intent - notific.setNotificationActionType(notifiShowedRlt - .getNotificationActionType()); - // Activity,url,intent都可以通过getActivity()获得 - notific.setActivity(notifiShowedRlt.getActivity()); - notific.setUpdate_time(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") - .format(Calendar.getInstance().getTime())); - NotificationService.getInstance(context).save(notific); - - Intent testIntent = new Intent(TEST_ACTION); - if (notifiShowedRlt.getTitle().equals(Constants.LOCAL_NOTIFICATION_TITLE)) { - testIntent.putExtra("step", Constants.TEST_LOCAL_NOTIFICATION); - } else { - testIntent.putExtra("step", Constants.TEST_NOTIFICATION); - } - context.sendBroadcast(testIntent); - - Intent viewIntent = new Intent(UPDATE_LISTVIEW_ACTION); - context.sendBroadcast(viewIntent); - show(context, "您有1条新消息, " + "通知被展示 , " + notifiShowedRlt.toString()); - Log.d(LogTag, "您有1条新消息, " + "通知被展示 , " + notifiShowedRlt.toString() + ", PushChannel:" + notifiShowedRlt.getPushChannel()); - } - - /** - * 注册回调 - * - * @param context - * @param errorCode 0 为成功,其它为错误码 - */ - @Override - public void onRegisterResult(Context context, int errorCode, XGPushRegisterResult message) { - if (context == null || message == null) { - return; - } - String text = ""; - if (errorCode == XGPushBaseReceiver.SUCCESS) { - // 在这里拿token - String token = message.getToken(); - text = "注册成功1. token:" + token; - } else { - text = message + "注册失败,错误码:" + errorCode; - } - Log.d(LogTag, text); - show(context, text); - } - - /** - * 反注册回调 - * - * @param context - * @param errorCode 0 为成功,其它为错误码 - */ - @Override - public void onUnregisterResult(Context context, int errorCode) { - if (context == null) { - return; - } - String text = ""; - if (errorCode == XGPushBaseReceiver.SUCCESS) { - text = "反注册成功"; - } else { - text = "反注册失败" + errorCode; - } - Log.d(LogTag, text); - show(context, text); - - } - - /** - * 设置标签回调 - * - * @param context - * @param errorCode 0 为成功,其它为错误码 - * @param tagName 设置的 TAG - */ - @Override - public void onSetTagResult(Context context, int errorCode, String tagName) { - if (context == null) { - return; - } - String text = ""; - if (errorCode == XGPushBaseReceiver.SUCCESS) { - text = "\"" + tagName + "\"设置成功"; - } else { - text = "\"" + tagName + "\"设置失败,错误码:" + errorCode; - } - Log.d(LogTag, text); - show(context, text); - - Intent testIntent = new Intent(TEST_ACTION); - testIntent.putExtra("step", Constants.TEST_SET_TAG); - context.sendBroadcast(testIntent); - } - - /** - * 删除标签的回调 - * - * @param context - * @param errorCode 0 为成功,其它为错误码 - * @param tagName 设置的 TAG - */ - @Override - public void onDeleteTagResult(Context context, int errorCode, String tagName) { - if (context == null) { - return; - } - String text = ""; - if (errorCode == XGPushBaseReceiver.SUCCESS) { - text = "\"" + tagName + "\"删除成功"; - } else { - text = "\"" + tagName + "\"删除失败,错误码:" + errorCode; - } - Log.d(LogTag, text); - show(context, text); - - Intent testIntent = new Intent(TEST_ACTION); - testIntent.putExtra("step", Constants.TEST_DEL_TAG); - context.sendBroadcast(testIntent); - } - - /** - * 设置账号回调 - * - * @param context - * @param errorCode 0 为成功,其它为错误码 - * @param account 设置的账号 - */ - @Override - public void onSetAccountResult(Context context, int errorCode, String account) { - Intent testIntent = new Intent(TEST_ACTION); - testIntent.putExtra("step", Constants.TEST_SET_ACCOUNT); - context.sendBroadcast(testIntent); - } - - - /** - * 删除账号回调 - * - * @param context - * @param errorCode 0 为成功,其它为错误码 - * @param account 设置的账号 - */ - @Override - public void onDeleteAccountResult(Context context, int errorCode, String account) { - Intent testIntent = new Intent(TEST_ACTION); - testIntent.putExtra("step", Constants.TEST_DEL_ACCOUNT); - context.sendBroadcast(testIntent); - } - - @Override - public void onSetAttributeResult(Context context, int i, String s) { - - } - - @Override - public void onDeleteAttributeResult(Context context, int i, String s) { - - } - - @Override - public void onQueryTagsResult(Context context, int errorCode, String data, String operateName) { - Log.i(LogTag, "action - onQueryTagsResult, errorCode:" + errorCode + ", operateName:" + operateName + ", data: " + data); - } - - /** - * 通知点击回调 actionType=1为该消息被清除,actionType=0为该消息被点击 - * - * @param context - * @param message 包含被点击通知的内容 - */ - @Override - public void onNotificationClickedResult(Context context, XGPushClickedResult message) { - if (context == null || message == null) { - return; - } - String text = ""; - if (message.getActionType() == NotificationAction.clicked.getType()) { - // 通知在通知栏被点击啦。。。。。 - // APP自己处理点击的相关动作 - // 这个动作可以在activity的onResume也能监听,请看第3点相关内容 - text = "通知被打开 :" + message; - } else if (message.getActionType() == NotificationAction.delete.getType()) { - // 通知被清除啦。。。。 - // APP自己处理通知被清除后的相关动作 - text = "通知被清除 :" + message; - } - Toast.makeText(context, "广播接收到通知被点击:" + message.toString(), - Toast.LENGTH_SHORT).show(); - // 获取自定义key-value - String customContent = message.getCustomContent(); - if (customContent != null && customContent.length() != 0) { - JsonObject obj = JsonParser.parseString(customContent).getAsJsonObject(); - // key1为前台配置的key - if (!TextUtils.isEmpty(obj.get("key").getAsString())) { - String value = obj.get("key").getAsString(); - Log.d(LogTag, "get custom value:" + value); - } - // ... - } - // APP自主处理的过程。。。 - Log.d(LogTag, text); - show(context, text); - } - - private void show(Context context, String text) { -// Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); - } - - private void processCustomMessage(Context context, XGPushTextMessage message) { - if (context == null || message == null) { - return; - } - - String title = message.getTitle(); - String content = message.getContent(); - JsonObject extrasJson = JsonParser.parseString(content).getAsJsonObject(); - - String extras = ""; - if (extrasJson.get("extras") != null) { - extras = extrasJson.get("extras").toString(); - } - PushManager.getInstance().setPushContent(title, extras); - } -} diff --git a/app/src/main/java/com/uiui/zyappstore/push/tpush/common/DBOpenHelper.java b/app/src/main/java/com/uiui/zyappstore/push/tpush/common/DBOpenHelper.java deleted file mode 100644 index 5bd3d59..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/tpush/common/DBOpenHelper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.uiui.zyappstore.push.tpush.common; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; - -public class DBOpenHelper extends SQLiteOpenHelper { - - public DBOpenHelper(Context context) { - super(context, "XGExample.db", null, 1); - } - - @Override - public void onCreate(SQLiteDatabase db) { - db.execSQL("CREATE TABLE notification (id integer primary key autoincrement,msg_id varchar(64),title varchar(128),activity varchar(256),notificationActionType varchar(512),content text,update_time varchar(16))"); - } - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - - } - -} diff --git a/app/src/main/java/com/uiui/zyappstore/push/tpush/common/NotificationService.java b/app/src/main/java/com/uiui/zyappstore/push/tpush/common/NotificationService.java deleted file mode 100644 index 323bd58..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/tpush/common/NotificationService.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.uiui.zyappstore.push.tpush.common; - -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; - - -import com.uiui.zyappstore.push.tpush.po.XGNotification; - -import java.util.ArrayList; -import java.util.List; - -public class NotificationService { - private DBOpenHelper dbOpenHelper; - private static NotificationService instance = null; - - public NotificationService(Context context) { - this.dbOpenHelper = new DBOpenHelper(context); - } - - public synchronized static NotificationService getInstance(Context ctx) { - if (null == instance) { - instance = new NotificationService(ctx); - } - return instance; - } - - public void save(XGNotification notification) { - SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); - ContentValues values = new ContentValues(); - values.put("msg_id", notification.getMsg_id()); - values.put("title", notification.getTitle()); - values.put("content", notification.getContent()); - values.put("activity", notification.getActivity()); - values.put("notificationActionType", notification.getNotificationActionType()); - values.put("update_time", notification.getUpdate_time()); - db.insert("notification", null, values); - } - - public void delete(Integer id) { - SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); - db.delete("notification", "id=?", new String[] { id.toString() }); - } - - public void deleteAll() { - SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); - db.delete("notification", "", null); - } - - public void update(XGNotification notification) { - SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); - ContentValues values = new ContentValues(); - values.put("msg_id", notification.getMsg_id()); - values.put("title", notification.getTitle()); - values.put("content", notification.getContent()); - values.put("activity", notification.getActivity()); - values.put("notificationActionType", notification.getNotificationActionType()); - values.put("update_time", notification.getUpdate_time()); - db.update("notification", values, "id=?", new String[] { notification - .getId().toString() }); - } - - public XGNotification find(Integer id) { - SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); - Cursor cursor = db - .query("notification", - new String[] { "id,msg_id,title,content,activity,notificationActionType,update_time" }, - "id=?", new String[] { id.toString() }, null, null, - null, "1"); - try { - if (cursor.moveToFirst()) { - return new XGNotification(cursor.getInt(cursor - .getColumnIndex("id")), cursor.getLong(cursor - .getColumnIndex("msg_id")), cursor.getString(cursor - .getColumnIndex("title")), cursor.getString(cursor - .getColumnIndex("content")), cursor.getString(cursor - .getColumnIndex("activity")), cursor.getInt(cursor - .getColumnIndex("notificationActionType")), cursor.getString(cursor - .getColumnIndex("update_time"))); - } - return null; - } finally { - cursor.close(); - } - } - - public List getScrollData(int currentPage, int lineSize, - String msg_id) { - String firstResult = String.valueOf((currentPage - 1) * lineSize); - SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); - Cursor cursor = null; - try { - if (msg_id == null || "".equals(msg_id)) { - cursor = db - .query("notification", - new String[] { "id,msg_id,title,content,activity,notificationActionType,update_time" }, - null, null, null, null, "update_time DESC", - firstResult + "," + lineSize); - } else { - cursor = db - .query("notification", - new String[] { "id,msg_id,title,content,activity,notificationActionType,update_time" }, - "msg_id like ?", new String[] { msg_id + "%" }, - null, null, "update_time DESC", firstResult - + "," + lineSize); - } - List notifications = new ArrayList(); - while (cursor.moveToNext()) { - notifications.add(new XGNotification(cursor.getInt(cursor - .getColumnIndex("id")), cursor.getLong(cursor - .getColumnIndex("msg_id")), cursor.getString(cursor - .getColumnIndex("title")), cursor.getString(cursor - .getColumnIndex("content")), cursor.getString(cursor - .getColumnIndex("activity")), cursor.getInt(cursor - .getColumnIndex("notificationActionType")), cursor.getString(cursor - .getColumnIndex("update_time")))); - } - return notifications; - } finally { - cursor.close(); - } - } - - public int getCount() { - SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); - Cursor cursor = db.rawQuery("select count(*) from notification", null); - try { - cursor.moveToFirst(); - return cursor.getInt(0); - } finally { - cursor.close(); - } - } -} diff --git a/app/src/main/java/com/uiui/zyappstore/push/tpush/po/XGNotification.java b/app/src/main/java/com/uiui/zyappstore/push/tpush/po/XGNotification.java deleted file mode 100644 index 8c239e7..0000000 --- a/app/src/main/java/com/uiui/zyappstore/push/tpush/po/XGNotification.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.uiui.zyappstore.push.tpush.po; - -public class XGNotification { - private Integer id; - private Long msg_id; - private String title; - private String content; - private String activity; - private int notificationActionType; - private String update_time; - - public XGNotification() { - - } - - public XGNotification(Integer id, Long msg_id, String title, - String content, String activity, int notificationActionType, String update_time) { - super(); - this.id = id; - this.msg_id = msg_id; - this.title = title; - this.content = content; - this.activity = activity; - this.notificationActionType = notificationActionType; - this.update_time = update_time; - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Long getMsg_id() { - return msg_id; - } - - public void setMsg_id(Long msg_id) { - this.msg_id = msg_id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getUpdate_time() { - return update_time; - } - - public void setUpdate_time(String update_time) { - this.update_time = update_time; - } - - public String getActivity() { - return activity; - } - - public void setActivity(String activity) { - this.activity = activity; - } - - public int getNotificationActionType() { - return notificationActionType; - } - - public void setNotificationActionType(int notificationActionType) { - this.notificationActionType = notificationActionType; - } -} diff --git a/app/src/main/java/com/uiui/zyappstore/receiver/BootReceiver.java b/app/src/main/java/com/uiui/zyappstore/receiver/BootReceiver.java index 982b474..83fe0e9 100644 --- a/app/src/main/java/com/uiui/zyappstore/receiver/BootReceiver.java +++ b/app/src/main/java/com/uiui/zyappstore/receiver/BootReceiver.java @@ -5,10 +5,6 @@ import android.content.Context; import android.content.Intent; import android.util.Log; -import com.uiui.zyappstore.service.GuardService; -import com.uiui.zyappstore.service.main.MainService; -import com.uiui.zyappstore.service.StepService; -import com.uiui.zyappstore.utils.JGYUtils; import com.uiui.zyappstore.utils.LogUtils; public class BootReceiver extends BroadcastReceiver { @@ -23,11 +19,8 @@ public class BootReceiver extends BroadcastReceiver { break; case Intent.ACTION_BOOT_COMPLETED: case BOOT_COMPLETED: - context.startService(new Intent(context, MainService.class)); - context.startService(new Intent(context, StepService.class)); - context.startService(new Intent(context, GuardService.class)); LogUtils.e("StoreBootReceiver", "booting BootReceiver"); - JGYUtils.getInstance().wakeUpDeviceInfo(); +// JGYUtils.getInstance().wakeUpDeviceInfo(); break; } } diff --git a/app/src/main/java/com/uiui/zyappstore/receiver/InstallResultReceiver.java b/app/src/main/java/com/uiui/zyappstore/receiver/InstallResultReceiver.java index ab1035f..3f902ae 100644 --- a/app/src/main/java/com/uiui/zyappstore/receiver/InstallResultReceiver.java +++ b/app/src/main/java/com/uiui/zyappstore/receiver/InstallResultReceiver.java @@ -11,7 +11,6 @@ import androidx.annotation.RequiresApi; import com.uiui.zyappstore.utils.ToastUtil; - public class InstallResultReceiver extends BroadcastReceiver { private static final String TAG = "InstallResultReceiver"; @@ -22,7 +21,6 @@ public class InstallResultReceiver extends BroadcastReceiver { // an Intent broadcast. //throw new UnsupportedOperationException("Not yet implemented"); - if (intent != null) { final int status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS, PackageInstaller.STATUS_FAILURE); @@ -43,16 +41,17 @@ public class InstallResultReceiver extends BroadcastReceiver { // while (iterator.hasNext()) { // Log.d("KEY", iterator.next()); // } - String STATUS = intent.getStringExtra(PackageInstaller.EXTRA_STATUS); +// String STATUS = intent.getStringExtra(PackageInstaller.EXTRA_STATUS); String PACKAGE_NAME = intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME); - String SESSION_ID = intent.getStringExtra(PackageInstaller.EXTRA_SESSION_ID); +// String SESSION_ID = intent.getStringExtra(PackageInstaller.EXTRA_SESSION_ID); String STATUS_MESSAGE = intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE); - String LEGACY_STATUS = intent.getStringExtra("android.content.pm.extra.LEGACY_STATUS"); +// String LEGACY_STATUS = intent.getStringExtra("android.content.pm.extra.LEGACY_STATUS"); // Log.e("fht", STATUS); // Log.e("fht", PACKAGE_NAME); // Log.e("fht", SESSION_ID); // Log.e("fht", LEGACY_STATUS); // Log.e("fht", STATUS_MESSAGE); + Log.e(TAG, "onReceive: " + STATUS_MESSAGE); if (STATUS_MESSAGE != null && STATUS_MESSAGE.equals("INSTALL_SUCCEEDED")) { ToastUtil.show(PACKAGE_NAME + "安装成功"); } diff --git a/app/src/main/java/com/uiui/zyappstore/service/DownloadService.java b/app/src/main/java/com/uiui/zyappstore/service/DownloadService.java deleted file mode 100644 index e9646a5..0000000 --- a/app/src/main/java/com/uiui/zyappstore/service/DownloadService.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.uiui.zyappstore.service; - -import android.app.Service; -import android.content.Intent; -import android.os.IBinder; - -import androidx.annotation.Nullable; - -// 下载管理服务 -public class DownloadService extends Service { - - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - flags = START_STICKY; - return super.onStartCommand(intent, flags, startId); - } - - @Override - public void onCreate() { - super.onCreate(); - startService(new Intent(this, StepService.class)); - startService(new Intent(this, GuardService.class)); - } - - @Override - public void onStart(Intent intent, int startId) { - super.onStart(intent, startId); - } - - @Override - public void onDestroy() { - super.onDestroy(); - } - - @Nullable - @Override - public IBinder onBind(Intent intent) { - return null; - } - - -} diff --git a/app/src/main/java/com/uiui/zyappstore/service/GuardService.java b/app/src/main/java/com/uiui/zyappstore/service/GuardService.java deleted file mode 100644 index 2624205..0000000 --- a/app/src/main/java/com/uiui/zyappstore/service/GuardService.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.uiui.zyappstore.service; - -/** - * 作者 mjsheng - * 日期 2019/4/1 10:58 - * 邮箱 501802639@qq.com - * 来自: - */ - -import android.app.Service; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.ServiceConnection; -import android.os.IBinder; -import android.util.Log; - -import androidx.annotation.Nullable; - -import com.arialyy.annotations.Download; -import com.arialyy.aria.core.Aria; -import com.arialyy.aria.core.task.DownloadTask; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.uiui.zyappstore.KeepAliveConnection; -import com.uiui.zyappstore.bean.BaseResponse; -import com.uiui.zyappstore.network.NetInterfaceManager; -import com.uiui.zyappstore.receiver.NewAppReceiver; -import com.uiui.zyappstore.utils.ApkUtils; -import com.uiui.zyappstore.utils.LogUtils; -import com.uiui.zyappstore.utils.SPUtils; -import com.uiui.zyappstore.utils.ServiceAliveUtils; -import com.uiui.zyappstore.utils.Utils; - -import java.io.File; - -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; -import io.reactivex.rxjava3.annotations.NonNull; -import io.reactivex.rxjava3.core.Observer; -import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.schedulers.Schedulers; - - -/** - * 守护进程 双进程通讯 - * - * @author LiGuangMin - * @time Created by 2018/8/17 11:27 - */ -public class GuardService extends Service { - private final static String TAG = GuardService.class.getSimpleName(); - private ServiceConnection mServiceConnection = new ServiceConnection() { - @Override - public void onServiceConnected(ComponentName componentName, IBinder iBinder) { - LogUtils.e(TAG, "GuardService:建立链接"); - boolean isServiceRunning = ServiceAliveUtils.isServiceAlice(GuardService.this); - if (!isServiceRunning) { - Intent i = new Intent(GuardService.this, DownloadService.class); - startService(i); - } - } - - @Override - public void onServiceDisconnected(ComponentName componentName) { - // 断开链接 - startService(new Intent(GuardService.this, StepService.class)); - // 重新绑定 - bindService(new Intent(GuardService.this, StepService.class), mServiceConnection, Context.BIND_IMPORTANT); - } - }; - - @Nullable - @Override - public IBinder onBind(Intent intent) { - return new KeepAliveConnection.Stub() { - }; - } - - @Override - public void onCreate() { - super.onCreate(); - registerNewAppReceiver(); - } - - private NewAppReceiver mNewAppReceiver; - - private void registerNewAppReceiver() { - if (mNewAppReceiver == null) { - mNewAppReceiver = new NewAppReceiver(); - IntentFilter filter = new IntentFilter(); - filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); - filter.addAction(Intent.ACTION_PACKAGE_ADDED); - filter.addAction(Intent.ACTION_PACKAGE_REPLACED); - filter.addAction(Intent.ACTION_PACKAGE_REMOVED); - filter.addDataScheme("package"); - registerReceiver(mNewAppReceiver, filter); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (mNewAppReceiver != null) { - unregisterReceiver(mNewAppReceiver); - } - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - Aria.init(this); - Aria.get(this).getDownloadConfig().setMaxTaskNum(1); - Aria.download(this).register(); - bindService(new Intent(this, StepService.class), mServiceConnection, Context.BIND_IMPORTANT); - return START_STICKY; - } - - - //在这里处理任务执行中的状态,如进度进度条的刷新 - @Download.onTaskRunning - protected void running(DownloadTask task) { - LogUtils.e("mjsheng", "我在下载=--------------::" + task.getState() + "-------" + task.getPercent() + "-------" + task.getExtendField()); - } - - @Download.onTaskComplete - void taskComplete(DownloadTask task) { - //在这里处理任务完成的状态 - final String downloadPath = task.getFilePath(); - if (null != task.getExtendField()) { - JsonObject jsonObject = JsonParser.parseString(task.getExtendField()).getAsJsonObject(); - String packageName = jsonObject.get("app_package").getAsString(); - File file = new File(downloadPath); - int admin_id = (int) SPUtils.get(GuardService.this, "admin_id", -1); - NetInterfaceManager.getInstance() - .getDownloadAppControl() - .sendDownloadApp(packageName, file.length(), Utils.getSerial(), admin_id) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull BaseResponse baseResponse) { - int code = baseResponse.code; - String msg = baseResponse.msg; - Log.e("taskComplete", "onNext: " + "code" + code + ",msg:" + msg); - - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("taskComplete", "onError: " + e.getMessage()); - } - - @Override - public void onComplete() { - - } - }); - } - - new Thread(() -> ApkUtils.installApp(GuardService.this, downloadPath)).start(); - } -} - diff --git a/app/src/main/java/com/uiui/zyappstore/service/StepService.java b/app/src/main/java/com/uiui/zyappstore/service/StepService.java deleted file mode 100644 index 1986662..0000000 --- a/app/src/main/java/com/uiui/zyappstore/service/StepService.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.uiui.zyappstore.service; - -/** - * 作者 mjsheng - * 日期 2019/4/1 10:57 - * 邮箱 501802639@qq.com - * 来自: - */ - -import android.app.Service; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.ServiceConnection; -import android.os.IBinder; - -import androidx.annotation.Nullable; - -import com.uiui.zyappstore.KeepAliveConnection; -import com.uiui.zyappstore.utils.LogUtils; -import com.uiui.zyappstore.utils.ServiceAliveUtils; - -/** - * 主进程 双进程通讯 - * - * @author LiGuangMin - * @time Created by 2018/8/17 11:26 - */ -public class StepService extends Service { - - private final static String TAG = StepService.class.getSimpleName(); - private ServiceConnection mServiceConnection = new ServiceConnection() { - @Override - public void onServiceConnected(ComponentName componentName, IBinder iBinder) { - LogUtils.e(TAG, "StepService:建立链接"); - boolean isServiceRunning = ServiceAliveUtils.isServiceAlice(StepService.this); - if (!isServiceRunning) { - Intent i = new Intent(StepService.this, DownloadService.class); - startService(i); - } - } - - @Override - public void onServiceDisconnected(ComponentName componentName) { - // 断开链接 - startService(new Intent(StepService.this, GuardService.class)); - // 重新绑定 - bindService(new Intent(StepService.this, GuardService.class), mServiceConnection, Context.BIND_IMPORTANT); - } - }; - - @Nullable - @Override - public IBinder onBind(Intent intent) { - return new KeepAliveConnection.Stub() { - }; - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { -// startForeground(1, new Notification()); - // 绑定建立链接 - bindService(new Intent(this, GuardService.class), mServiceConnection, Context.BIND_IMPORTANT); - return START_STICKY; - } - -} diff --git a/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java b/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java index 6764693..a1ce87c 100644 --- a/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java +++ b/app/src/main/java/com/uiui/zyappstore/service/main/MainService.java @@ -5,21 +5,36 @@ import android.content.Intent; import android.os.IBinder; import android.util.Log; +import com.arialyy.annotations.Download; +import com.arialyy.aria.core.Aria; +import com.arialyy.aria.core.task.DownloadTask; import com.blankj.utilcode.util.NetworkUtils; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.trello.rxlifecycle4.LifecycleProvider; import com.trello.rxlifecycle4.LifecycleTransformer; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import com.trello.rxlifecycle4.android.RxLifecycleAndroid; -import com.uiui.zyappstore.KeepAliveConnection; +import com.uiui.zyappstore.bean.BaseResponse; import com.uiui.zyappstore.network.HTTPInterface; +import com.uiui.zyappstore.network.NetInterfaceManager; +import com.uiui.zyappstore.utils.ApkUtils; import com.uiui.zyappstore.utils.JGYUtils; +import com.uiui.zyappstore.utils.LogUtils; +import com.uiui.zyappstore.utils.SPUtils; +import com.uiui.zyappstore.utils.Utils; import org.jetbrains.annotations.NotNull; import java.io.File; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; import io.reactivex.rxjava3.subjects.BehaviorSubject; public class MainService extends Service implements MainSContact.MainView, NetworkUtils.OnNetworkStatusChangedListener, LifecycleProvider { @@ -32,13 +47,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void onDisconnected() { Log.e(TAG, "网络未连接"); -// ToastUtil.show("网络未连接"); } @Override public void onConnected(NetworkUtils.NetworkType networkType) { Log.e(TAG, "网络已连接"); -// ToastUtil.show("网络已连接"); if (JGYUtils.getInstance().isScreenOn()) { HTTPInterface.checkUpdate(MainService.this); HTTPInterface.checkUpdate(MainService.this, "com.uiui.sn"); @@ -64,25 +77,27 @@ public class MainService extends Service implements MainSContact.MainView, Netwo return RxLifecycleAndroid.bindActivity(lifecycleSubject); } - public MainService() { - } - @Override public IBinder onBind(Intent intent) { - // TODO: Return the communication channel to the service. -// throw new UnsupportedOperationException("Not yet implemented"); - return new KeepAliveConnection.Stub() { - }; + return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { - return START_STICKY; + Aria.download(this).register(); +// return START_STICKY; + return super.onStartCommand(intent, flags, startId); } @Override public void onCreate() { super.onCreate(); + Log.e(TAG, "onCreate: "); + + Aria.download(this).register(); + + HTTPInterface.checkUpdate(MainService.this); + lifecycleSubject.onNext(ActivityEvent.CREATE); mPresenter = new MainSPresenter(this); mPresenter.setLifecycle(lifecycleSubject); @@ -110,4 +125,67 @@ public class MainService extends Service implements MainSContact.MainView, Netwo public void setSnTag() { } + + //在这里处理任务执行中的状态,如进度进度条的刷新 + @Download.onTaskRunning + void running(DownloadTask task) { + LogUtils.e(TAG, "running: " + "getState = " + task.getState() + "getPercent = " + task.getPercent() + "getExtendField = " + task.getExtendField()); + } + + @Download.onTaskComplete + void taskComplete(DownloadTask task) { + Log.e(TAG, "taskComplete: " ); + //在这里处理任务完成的状态 + final String downloadPath = task.getFilePath(); + if (null != task.getExtendField()) { + JsonObject jsonObject = JsonParser.parseString(task.getExtendField()).getAsJsonObject(); + String packageName = jsonObject.get("app_package").getAsString(); + File file = new File(downloadPath); + int admin_id = (int) SPUtils.get(MainService.this, "admin_id", -1); + NetInterfaceManager.getInstance() + .getDownloadAppControl() + .sendDownloadApp(packageName, file.length(), Utils.getSerial(), admin_id) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + int code = baseResponse.code; + String msg = baseResponse.msg; + Log.e("taskComplete", "onNext: " + "code" + code + ",msg:" + msg); + + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("taskComplete", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + + } + }); + } + ApkUtils.installApp(MainService.this, task.getFilePath()); + } + + @Download.onTaskFail + void taskFail(DownloadTask task, Exception e) { + Log.e(TAG, "taskFail: "); + Aria.download(this).resumeAllTask(); + try { + final String filepath = task.getFilePath(); + final String packageName = task.getExtendField(); + Log.e(TAG, "taskFail: " + packageName + " filepath: " + filepath); + Aria.download(this).load(task.getDownloadEntity().getId()).cancel(true); + } catch (Exception ex) { + Log.e(TAG, "taskFail: " + "Exception: " + ex.getLocalizedMessage()); + } + } } diff --git a/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java b/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java index 40b57d1..890ef59 100644 --- a/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java +++ b/app/src/main/java/com/uiui/zyappstore/utils/ApkUtils.java @@ -27,6 +27,7 @@ import com.google.gson.JsonObject; import com.uiui.zyappstore.BuildConfig; import com.uiui.zyappstore.R; import com.uiui.zyappstore.bean.LocalApp; +import com.uiui.zyappstore.common.CommonConfig; import com.uiui.zyappstore.gson.GsonUtils; import com.uiui.zyappstore.receiver.InstallResultReceiver; @@ -89,7 +90,7 @@ public class ApkUtils { } public static void openApp(Context context, String packageName) { - int setting_other_appInstaller = Settings.Global.getInt(context.getContentResolver(), "setting_other_appInstaller", 0); + int setting_other_appInstaller = Settings.Global.getInt(context.getContentResolver(), CommonConfig.APP_INSTALLATION, 0); Log.e(TAG, "openApp: " + setting_other_appInstaller); if (setting_other_appInstaller == 0) { ToastUtil.show("已禁止应用打开"); @@ -390,7 +391,6 @@ public class ApkUtils { ToastUtil.show("正在安装应用"); install(packageInstaller, sessionId, context); } - } } diff --git a/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java b/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java index 18bcca1..ed208c7 100644 --- a/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java +++ b/app/src/main/java/com/uiui/zyappstore/utils/JGYUtils.java @@ -61,6 +61,7 @@ public class JGYUtils { public static final int ipaly50SEPlatform = 10; public static final int iPlayMiniPlatform = 13; public static final int iPlay5013Platform = 14; + public static final int iPlay50miniProPlatform = 16; public static final int UnknowPlatform = 0; public static final String MTKTag = "MTK"; @@ -73,6 +74,7 @@ public class JGYUtils { public static final String ipaly50SETag = "ipaly50SE"; public static final String iPlayMiniTag = "T811"; public static final String iPlay5013Tag = "iplay5013"; + public static final String iPlay50miniProTag = "miniG99"; private JGYUtils(Context context) { @@ -352,7 +354,10 @@ public class JGYUtils { } else if (iPlay5013Tag.equalsIgnoreCase(platform)) { Log.i(TAG, "checkAppPlatform: " + "ipaly50 13"); return iPlay5013Platform; - } else { + }else if (iPlay50miniProTag.equalsIgnoreCase(platform)) { + Log.i(TAG, "checkAppPlatform: " + "miniG99"); + return iPlay50miniProPlatform; + } else { Log.i(TAG, "checkAppPlatform: " + "没有数据"); return UnknowPlatform; } @@ -394,6 +399,8 @@ public class JGYUtils { getAppPlatformCallback.AppPlatform(iPlayMiniPlatform); } else if (iPlay5013Tag.equalsIgnoreCase(platform)) { getAppPlatformCallback.AppPlatform(iPlay5013Platform); + } else if (iPlay50miniProTag.equalsIgnoreCase(platform)) { + getAppPlatformCallback.AppPlatform(iPlay50miniProPlatform); } else { getAppPlatformCallback.AppPlatform(UnknowPlatform); } diff --git a/app/src/main/java/com/uiui/zyappstore/utils/SPUtils.java b/app/src/main/java/com/uiui/zyappstore/utils/SPUtils.java index 7bff828..af1ab47 100644 --- a/app/src/main/java/com/uiui/zyappstore/utils/SPUtils.java +++ b/app/src/main/java/com/uiui/zyappstore/utils/SPUtils.java @@ -9,7 +9,7 @@ import android.util.Base64; import android.widget.ImageView; -import com.uiui.zyappstore.common.CommonDatas; +import com.uiui.zyappstore.common.CommonConfig; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -103,7 +103,7 @@ public class SPUtils { //还原状态firstEnter信息 private static void reductFirstEnter(Context context){ - put(context, CommonDatas.FLAG_FIRST_ENTER,CommonDatas.FLAG_FIRST_ENTER); + put(context, CommonConfig.FLAG_FIRST_ENTER, CommonConfig.FLAG_FIRST_ENTER); } diff --git a/app/src/main/java/com/uiui/zyappstore/utils/Utils.java b/app/src/main/java/com/uiui/zyappstore/utils/Utils.java index 625ae4d..f689bb3 100644 --- a/app/src/main/java/com/uiui/zyappstore/utils/Utils.java +++ b/app/src/main/java/com/uiui/zyappstore/utils/Utils.java @@ -22,7 +22,6 @@ import android.graphics.PorterDuffXfermode; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.NetworkInfo; -import android.net.wifi.WifiManager; import android.os.Build; import android.provider.Settings; import android.telephony.TelephonyManager; @@ -34,9 +33,8 @@ import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.Toast; -import androidx.annotation.VisibleForTesting; - import com.uiui.zyappstore.R; +import com.uiui.zyappstore.common.CommonConfig; import java.io.BufferedReader; import java.io.File; @@ -57,8 +55,6 @@ import java.util.Date; import java.util.HashSet; import java.util.List; -import static android.content.Context.WIFI_SERVICE; - public class Utils { private static final String TAG = Utils.class.getSimpleName(); @@ -804,4 +800,10 @@ public class Utils { return Settings.System.putString(context.getContentResolver(), "aole_app_forbid", String.join(",", hashSet)); } } + + public static boolean canDownloadApp(Context context) { + int app = Settings.Global.getInt(context.getContentResolver(), CommonConfig.APP_STORE_INSTALL, 1); + Log.e(TAG, "canDownloadApp: " + app); + return app == 1; + } } \ No newline at end of file diff --git a/build.gradle b/build.gradle index 117b882..1686f28 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,6 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.6.4' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "com.tencent.android.tpns:tpnsplugin:1.8.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files