集成步骤:
一、.下载3.1.0SDK
二、.
- 获取应用对应的AppKey和Umeng Message Secret,如下图:
三、导入PushSDK
- 把下载的zip文件解压缩(解压后的文件路径不能有中文)。
- 把解压缩后得到的目录下的PushSDK当做Module导入到自己的工程,如下图所示:
注意:
- PushSDK 3.0默认只提供armeabi和x86两种so文件夹,若主工程中的so文件夹与PushSDK下的so文件夹不一致,则可以有两种方式处理(选择一种即可):删除主工程下多余的so文件夹,与PushSDK下的so文件夹保持一致。
在官网PushSDK下载处,下载全平台so文件,添加缺少的so文件夹至 PushSDK下,使PushSDK的so文件夹与主工程的so文件夹保持一致。- 支持全平台SO文件下载支持全平台SO文件下载链接
在上面链接中的平台下载全部的so库,然后在主工程下必须添加so库。如图:
主工程 pushSDK
四、配置Appkey和Secret
<Application>
标签下添加:
<meta-data
android:name="UMENG_APPKEY"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx">
</meta-data>
<meta-data
android:name="UMENG_MESSAGE_SECRET"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx">
</meta-data>
UMENG_APPKEY
和UMENG_MESSAGE_SECRET
的值修改为和自己应用对应的值。
添加Channel ID(必须添加否则收不到driverrtoken)每台设备仅识别首次安装激活的渠道。
<Application>
标签下添加:
<meta-data
android:name="UMENG_CHANNEL"
android:value="Channel ID" >
</meta-data>
六、配置build.gralde
- 在Application Module的build.gradle文件的
dependencies
- 下添加
compile project(':PushSDK')
- 。
- 请确保Application Module的build.gradle文件中的
applicationId
- 与应用包名
package
- 一致。
注意:
- 若主工程的targetSdkVersion为23及以上,请在代码中遵循Android 6.0的运行时权限机制申请存储权限(
WRITE_EXTERNAL_STORAGE
- ),否则在Android 6.0及以上机型可能出现无法选举宿主的情况。
Android Plugin Version(com.android.tools.build:gradle)
- 推荐使用1.5.0及以上版本,使用过旧的版本可能由于编译问题导致无法获取device token。
七、 初始化PushSDK
3.2.6.1 注册推送服务
务必
在工程的Application类的 onCreate()
PushAgent mPushAgent = PushAgent.getInstance(this);
//注册推送服务,每次调用register方法都会回调该接口
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//注册成功会返回device token
}
@Override
public void onFailure(String s, String s1) {
}
});
PushAgent mPushAgent = PushAgent.getInstance(this);
//注册推送服务,每次调用register方法都会回调该接口
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//注册成功会返回device token
}
@Override
public void onFailure(String s, String s1) {
}
});
八。自定义行为:(即、点击通知栏消息后的处理)
必须写在oncreate( )中:
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
@Override
public void dealWithCustomAction(Context context, UMessage msg) {
if (!TextUtils.isEmpty(msg.toString())) {
Intent intent = new Intent(context, LotteryDetailActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
String url = msg.extra.get("url");
Log.i("YHY","url="+url);
Bundle bundle = new Bundle();
bundle.putString("url", url);
intent.putExtras(bundle);
startActivity(intent);
}
}
};
mPushAgent.setNotificationClickHandler(notificationClickHandler);