cocos2d-x集成友盟消息推送SDK(Android版)
16lz
2021-01-23
前言:自己摸索研究友盟消息推送功能,Android和ios平台均测试通过。记录下来以备忘。中间踩了不少坑,尤其是ios关于证书的坑。友盟官方文档Android部分写得比较详尽,ios部分写得比较烂。本篇是cocos2d-x集成友盟消息推送功能的Android部分,大部分参考Android 消息推送(Message) SDK 集成指南。ios部分请见另一篇。
省略的内容
- 什么是友盟
- 注册友盟账号
- [申请开通友盟消息推送服务]
- [下载友盟消息推送SDK(Android)]
创建Android应用
1.进入友盟消息中心,创建安卓应用
2.点击添加应用获得AppKey
导入SDK所需的jar包
将下载的SDK压缩包解压,将其中的libs文件夹中的文件复制到安卓工程的libs目录下。 该SDK需要最新版本的 android-support-v4.jar 该jar包在SDK压缩包中的PushExamle2/libs中包含,可以复制到工程的libs目录下来用。 在Eclipse ADT中refresh一下。配置AndroidManifest.xml
1.添加权限
在
2.添加组件
在标签下添加:
注意把【用用包名】替换为自己应用的包名。
形如 xxx.xxx.xxx.intent.action.COMMAND
3.添加AppKey和Umeng Message Secret
在标签下添加:填写刚刚申请到的AppKey和Message Secret
注意:上述写法和如下写法相同,为xml的不同写法
如果不使用友盟的服务器,可以不填写 Umeng Message Secret 4.添加Channel ID
Channel ID用于友盟区分标记是在哪个平台(渠道)发布的安卓应用,比如360市场,91,百度等。如果在360市场发布,则Channel ID请填写你用于标记360市场的标签。如果需要在多个平台(渠道)发布应用,并且需要友盟区分是哪个平台(渠道),则每个发布平台需要单独生成安装包发布。并填写好用于你自己区分的Channel ID。//名称随便填,只要自己知道就行
或者,通过调用一下代码设置推广渠道。
mPushAgent.setMessageChannel();
说明
- 若同时在AndroidManifest.xml和代码设置了MessageChannel,则以代码设置的为准。
- 若在AndroidManifest.xml和代码里均没有设置,则使用Unknown作为Channel ID。
- 你可以使用20位以内的英文和数字为渠道定名(不要使用纯数字)。
- 友盟消息推送可以和友盟统计分析共用一个"Channel ID"字段。
- 你可以使用友盟渠道打包工具,一次生成多个渠道包。
添加代码
1.开启推送服务
打开Eclipse ADT,在【Package Explorer】---->【src】--->【项目名.java】的Activty的onCreate()函数中添加如下代码:PushAgent mPushAgent = PushAgent.getInstance(this);mPushAgent.enable();mPushAgent.onAppStart();//如果不调用此方法,将会导致按照"几天不活跃"条件推送失效。
2.获取设备的Device Token
可以在Debug模式下的logcat中看到Device Token,也可以在Activity的onResume()函数中添加如下代码:String device_token = UmengRegistrar.getRegistrationId(this);device_token = UmengRegistrar.getRegistrationId(this);Log.d("mmmm", "----------device_token: " + device_token);
打印Device Token。
说明
- Device Token为友盟生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上每个应用对应的Device Token不一样。
- 获取Device Token的代码需要放在
mPushAgent.enable();
后面,注册成功以后调用才能获得Device Token。 - 如果返回值为空, 说明设备还没有注册成功, 需要等待几秒钟,同时请确保测试手机网络畅通。
此段说明表明Android的Device Token由友盟生成,并且同一个设备上的不同应用对应的Device Token都不同。并且在联网状态下注册成功后才能获得Device Token,这就是获取函数放在onResume()函数中的原因,这样可以多次调用到。如果第一次为null,可以尝试重复唤醒调用。 ios与Android不同,ios的Device Token与系统绑定,同一台设备每个应用对应的Device Token是相同的。 连接真机,在Debug模式下运行项目,获取Device Token。如果控制台没有看到Device Token,尝试使用断点查看device_token变量的值。
测试推送消息
1.添加测试设备
在 友盟消息推送服务后台的【测试模式】中添加测试设备。2.发送测试消息
在测试手机联网的状态下,在友盟消息推送服务器后台中发送测试消息。在【发送给】选项中可以填写Device Token选择单播发送,如果在测试设备商收到消息,表明SDK集成成功。更多相关文章
- Android消息推送完美方案
- 一个hello程序的android内核模块编译方法及在模拟器中进行测试结
- android的两种布局------------------------经自身测试,完全正确
- Android之百度推送高级篇之消息【原创】
- Android 蓝牙设备的开启与关闭功能的实现
- js判断用户设备的类型(iOS,Android,pc等)
- 【Android】从主线程向子线程发消息
- Android中蓝牙设备搜索
- Android Gradle Release Version 2.4 增加多进程并行编译,经测试