123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package org.cocos2dx.javascript.application;
- import android.app.Application;
- import android.content.Context;
- import android.content.pm.ApplicationInfo;
- import android.content.pm.PackageManager;
- import com.umeng.commonsdk.UMConfigure;
- import com.umeng.commonsdk.utils.UMUtils;
- import com.umeng.message.PushAgent;
- import com.umeng.message.api.UPushRegisterCallback;
- import com.xiaomi.mipush.sdk.PushMessageHelper;
- import org.android.agoo.huawei.HuaWeiRegister;
- import org.android.agoo.oppo.OppoRegister;
- import org.android.agoo.vivo.VivoRegister;
- import org.android.agoo.xiaomi.MiPushRegistar;
- import org.cocos2dx.javascript.util.Consts;
- import org.cocos2dx.javascript.util.CrashHandler;
- import org.cocos2dx.javascript.util.Logger;
- import org.cocos2dx.lib.MediaPlayerManager;
- public class EApplication extends Application {
- @Override
- public void onCreate() {
- super.onCreate();
- Consts.mApplicatonContext = this;
- UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "dfc59afd6dc6b1550ff1c2e0c7eb10fd");
- UMConfigure.setLogEnabled(true);
- // MediaPlayerManager.getDefault().init(Consts.mApplicatonContext, getPackageName());
- CrashHandler.getInstance().init(this);
- boolean isMainProcess = UMUtils.isMainProgress(this);
- if (isMainProcess) {
- //启动优化:建议在子线程中执行初始化
- new Thread(new Runnable() {
- @Override
- public void run() {
- PushHelper.init(getApplicationContext());
- }
- }).start();
- } else {
- //若不是主进程(":channel"结尾的进程),直接初始化sdk,不可在子线程中执行
- PushHelper.init(getApplicationContext());
- }
- PushAgent.getInstance(getApplicationContext()).onAppStart();
- }
- @Override
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- }
- public static String getChannelName() {
- String code = "";
- try {
- PackageManager packageManager = Consts.mApplicatonContext.getPackageManager();
- if (packageManager != null) {
- //注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
- ApplicationInfo applicationInfo = packageManager.
- getApplicationInfo(Consts.mApplicatonContext.getPackageName(), PackageManager.GET_META_DATA);
- if (applicationInfo != null) {
- if (applicationInfo.metaData != null) {
- code = String.valueOf(applicationInfo.metaData.get("UMENG_CHANNEL"));
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return code;
- }
- }
- class PushHelper {
- public static void init(Context context) {
- //获取消息推送实例
- PushAgent pushAgent = PushAgent.getInstance(context);
- String channelCode = EApplication.getChannelName();
- if (channelCode.equals("2008")) {
- //小米渠道
- MiPushRegistar.register(context, "2882303761517510194", "r+ETScCARNYoaRwNV/BySw==", false);
- } else if (channelCode.equals("2005")) {
- //华为渠道
- HuaWeiRegister.register(Consts.mApplicatonContext);
- } else if (channelCode.equals("2007")) {
- //vivo渠道
- VivoRegister.register(context);
- } else if (channelCode.equals("2004")) {
- OppoRegister.register(context, "Dzb55KTW1gOoG8g408wSkwW08", "72cBB2D18C33571241C002748b964e3F");
- }
- //注册推送服务,每次调用register方法都会回调该接口
- pushAgent.register(new UPushRegisterCallback() {
- @Override
- public void onSuccess(String deviceToken) {
- //注册成功会返回deviceToken deviceToken是推送消息的唯一标志
- Logger.e("注册成功:deviceToken:--> " + deviceToken);
- }
- @Override
- public void onFailure(String errCode, String errDesc) {
- Logger.e("注册失败:--> " + "code:" + errCode + ", desc:" + errDesc);
- }
- });
- }
- }
|