EApplication.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.edufound.mobile.application;
  2. import android.app.Activity;
  3. import android.app.ActivityManager;
  4. import android.app.Application;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.support.annotation.Nullable;
  8. import android.view.Window;
  9. import com.edufound.mobile.R;
  10. import com.edufound.mobile.pay.PayInit;
  11. import com.edufound.mobile.util.ContextUtil;
  12. import com.edufound.mobile.util.Logger;
  13. import com.edufound.mobile.util.SPutil;
  14. import com.umeng.commonsdk.UMConfigure;
  15. import com.umeng.message.IUmengRegisterCallback;
  16. import com.umeng.message.PushAgent;
  17. import org.android.agoo.huawei.HuaWeiRegister;
  18. import org.android.agoo.vivo.VivoRegister;
  19. import org.android.agoo.xiaomi.MiPushRegistar;
  20. import java.lang.reflect.Field;
  21. import java.lang.reflect.Method;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. import java.util.Map;
  25. public class EApplication extends Application {
  26. final String XIAOMI_ID = "";
  27. final String XIAOMI_KEY = "";
  28. @Override
  29. public void onCreate() {
  30. super.onCreate();
  31. ContextUtil.setContext(this);
  32. ContextUtil.setApplication(this);
  33. //上线关掉debug模式
  34. ContextUtil.setIsDebug(true);
  35. //根据appcode初始化支付sdk
  36. UMConfigure.setLogEnabled(true);
  37. UMConfigure.init(this, "5e34d2fb4ca3574b1800005b", getAppCode() + "", UMConfigure.DEVICE_TYPE_PHONE, "dfc59afd6dc6b1550ff1c2e0c7eb10fd");
  38. PushAgent mPushAgent = PushAgent.getInstance(this);
  39. mPushAgent.register(new IUmengRegisterCallback() {
  40. @Override
  41. public void onSuccess(String deviceToken) {
  42. Logger.e("DeviceToken:" + deviceToken);
  43. }
  44. @Override
  45. public void onFailure(String s, String s1) {
  46. Logger.e("注册失败:--------> " + "s:" + s + ",s1:" + s1);
  47. }
  48. });
  49. if (getAppCode().equals(getString(R.string.app_code_xm))) {
  50. MiPushRegistar.register(this, XIAOMI_ID, XIAOMI_KEY);
  51. } else if (getAppCode().equals(getString(R.string.app_code_huawei))) {
  52. HuaWeiRegister.register(this);
  53. } else if (getAppCode().equals(getString(R.string.app_code_vivo))) {
  54. VivoRegister.register(this);
  55. }
  56. PayInit.getInstance().initPaySDK(Integer.valueOf(getAppCode()), EApplication.this);
  57. if (!getPackageName().equals(
  58. getProcessName(getApplicationContext(), android.os.Process.myPid()))) {
  59. return;
  60. }
  61. //如果是新应用,默认设置播放器为ijkplayer
  62. if (SPutil.getPrefInt(this, SPutil.videoType, 0) == 0) {
  63. SPutil.setPrefInt(this, SPutil.videoType, SPutil.VIDEO_IJKPLAYER);
  64. }
  65. /*
  66. * AppKey
  67. 5e34d2fb4ca3574b1800005b
  68. Umeng Message Secret
  69. dfc59afd6dc6b1550ff1c2e0c7eb10fd
  70. App Master Secret
  71. ojy29ycnnynpvyetpunc2m0ija4vskyo
  72. *
  73. * */
  74. }
  75. public static void exitApp() {
  76. Intent intent_close = new Intent(ContextUtil.CLOSE_ACTIVITY_SPLASH);
  77. ContextUtil.getContext().sendBroadcast(intent_close);
  78. }
  79. private static List<Activity> getAllActivitys() {
  80. List<Activity> list = new ArrayList<>();
  81. try {
  82. Class<?> activityThread = Class.forName("android.app.ActivityThread");
  83. Method currentActivityThread = activityThread.getDeclaredMethod("currentActivityThread");
  84. currentActivityThread.setAccessible(true);
  85. //获取主线程对象
  86. Object activityThreadObject = currentActivityThread.invoke(null);
  87. Field mActivitiesField = activityThread.getDeclaredField("mActivities");
  88. mActivitiesField.setAccessible(true);
  89. Map<Object, Object> mActivities = (Map<Object, Object>) mActivitiesField.get(activityThreadObject);
  90. for (Map.Entry<Object, Object> entry : mActivities.entrySet()) {
  91. Object value = entry.getValue();
  92. Class<?> activityClientRecordClass = value.getClass();
  93. Field activityField = activityClientRecordClass.getDeclaredField("activity");
  94. activityField.setAccessible(true);
  95. Object o = activityField.get(value);
  96. list.add((Activity) o);
  97. }
  98. } catch (Exception e) {
  99. e.printStackTrace();
  100. }
  101. return list;
  102. }
  103. public static void clearActivity() {
  104. List<Activity> myAclist = getAllActivitys();
  105. for (int i = 0; i < myAclist.size(); i++) {
  106. myAclist.get(i).finish();
  107. }
  108. }
  109. @Nullable
  110. public String getProcessName(Context cxt, int pid) {
  111. ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
  112. if (am == null) {
  113. return null;
  114. }
  115. List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses();
  116. if (runningApps != null && !runningApps.isEmpty()) {
  117. for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
  118. if (procInfo.pid == pid) {
  119. return procInfo.processName;
  120. }
  121. }
  122. }
  123. return null;
  124. }
  125. public static String getAppCode() {
  126. //记得改友盟code
  127. return ContextUtil.getContext().getString(R.string.app_code_yf);
  128. }
  129. }