在自身项目集成友盟推送时,参考了官方文档的教程
导入 PushSDK
-
把下载的 zip 文件解压缩(解压后的文件路径不能有中文)
-
把解压缩后得到的目录下的 PushSDK 当做 Module 导入到自己的工程
-
在之前的
AndroidManifest.xml
的基础上添加<meta-data android:name="UMENG_MESSAGE_SECRET" android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
-
编辑
build.gradle
添加模块dependencies{ // ... compileproject(':PushSDK') }
权限配置
若主工程的 targetSdkVersion
为 23 及以上,需要运行时申请 存储权限 ( WRITE_EXTERNAL_STORAGE
),否则在
Android 6.0 及以上机型可能出现无法选举宿主的情况。
注册服务
在工程的 Application 类的 onCreate()
方法中注册推送服务,无论推送是否开启都需要调用此方法:
PushAgent mPushAgent = PushAgent.getInstance(this);
// 注册推送服务,每次调用 register 方法都会回调该接口
mPushAgent.register(newIUmengRegisterCallback() {
@Override
publicvoidonSuccess(String deviceToken){
// 注册成功会返回 device token
}
@Override
publicvoidonFailure(String s, String s1){
}
但是按照上述步骤后,一直获取不到
deviceToken
最后在APP moduel的build的 defaultConfig领域中加入
ndk { abiFilters "armeabi","x86" }在gradle.properties 文件里面添加 android.useDeprecatedNdk=true 后重新编译即可解决了收不到推送消息的问题