EApplication.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package org.cocos2dx.javascript.application;
  2. import android.app.Application;
  3. import android.content.Context;
  4. import android.content.pm.ApplicationInfo;
  5. import android.content.pm.PackageManager;
  6. import com.umeng.commonsdk.UMConfigure;
  7. import com.umeng.commonsdk.utils.UMUtils;
  8. import com.umeng.message.PushAgent;
  9. import com.umeng.message.api.UPushRegisterCallback;
  10. import com.xiaomi.mipush.sdk.PushMessageHelper;
  11. import org.android.agoo.huawei.HuaWeiRegister;
  12. import org.android.agoo.oppo.OppoRegister;
  13. import org.android.agoo.vivo.VivoRegister;
  14. import org.android.agoo.xiaomi.MiPushRegistar;
  15. import org.cocos2dx.javascript.util.Consts;
  16. import org.cocos2dx.javascript.util.CrashHandler;
  17. import org.cocos2dx.javascript.util.Logger;
  18. import org.cocos2dx.lib.MediaPlayerManager;
  19. public class EApplication extends Application {
  20. @Override
  21. public void onCreate() {
  22. super.onCreate();
  23. Consts.mApplicatonContext = this;
  24. UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "dfc59afd6dc6b1550ff1c2e0c7eb10fd");
  25. UMConfigure.setLogEnabled(true);
  26. // MediaPlayerManager.getDefault().init(Consts.mApplicatonContext, getPackageName());
  27. CrashHandler.getInstance().init(this);
  28. boolean isMainProcess = UMUtils.isMainProgress(this);
  29. if (isMainProcess) {
  30. //启动优化:建议在子线程中执行初始化
  31. new Thread(new Runnable() {
  32. @Override
  33. public void run() {
  34. PushHelper.init(getApplicationContext());
  35. }
  36. }).start();
  37. } else {
  38. //若不是主进程(":channel"结尾的进程),直接初始化sdk,不可在子线程中执行
  39. PushHelper.init(getApplicationContext());
  40. }
  41. PushAgent.getInstance(getApplicationContext()).onAppStart();
  42. }
  43. @Override
  44. protected void attachBaseContext(Context base) {
  45. super.attachBaseContext(base);
  46. }
  47. public static String getChannelName() {
  48. String code = "";
  49. try {
  50. PackageManager packageManager = Consts.mApplicatonContext.getPackageManager();
  51. if (packageManager != null) {
  52. //注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
  53. ApplicationInfo applicationInfo = packageManager.
  54. getApplicationInfo(Consts.mApplicatonContext.getPackageName(), PackageManager.GET_META_DATA);
  55. if (applicationInfo != null) {
  56. if (applicationInfo.metaData != null) {
  57. code = String.valueOf(applicationInfo.metaData.get("UMENG_CHANNEL"));
  58. }
  59. }
  60. }
  61. } catch (Exception e) {
  62. e.printStackTrace();
  63. }
  64. return code;
  65. }
  66. }
  67. class PushHelper {
  68. public static void init(Context context) {
  69. //获取消息推送实例
  70. PushAgent pushAgent = PushAgent.getInstance(context);
  71. String channelCode = EApplication.getChannelName();
  72. if (channelCode.equals("2008")) {
  73. //小米渠道
  74. MiPushRegistar.register(context, "2882303761517510194", "r+ETScCARNYoaRwNV/BySw==", false);
  75. } else if (channelCode.equals("2005")) {
  76. //华为渠道
  77. HuaWeiRegister.register(Consts.mApplicatonContext);
  78. } else if (channelCode.equals("2007")) {
  79. //vivo渠道
  80. VivoRegister.register(context);
  81. } else if (channelCode.equals("2004")) {
  82. OppoRegister.register(context, "Dzb55KTW1gOoG8g408wSkwW08", "72cBB2D18C33571241C002748b964e3F");
  83. }
  84. //注册推送服务,每次调用register方法都会回调该接口
  85. pushAgent.register(new UPushRegisterCallback() {
  86. @Override
  87. public void onSuccess(String deviceToken) {
  88. //注册成功会返回deviceToken deviceToken是推送消息的唯一标志
  89. Logger.e("注册成功:deviceToken:--> " + deviceToken);
  90. }
  91. @Override
  92. public void onFailure(String errCode, String errDesc) {
  93. Logger.e("注册失败:--> " + "code:" + errCode + ", desc:" + errDesc);
  94. }
  95. });
  96. }
  97. }