android studio集成友盟推送U-Push SDK

1、创建应用

  1. 请在 http://push.umeng.com 上使用应用包名创建应用,获取应用对应的AppKey和Umeng Message Secret。
  2. 获取应用对应的AppKey和Umeng Message Secret,如下图:2、导入PushSDK

       1、把下载的zip文件解压缩(解压后的文件路径不能有中文)。

      /2、把解压缩后得到的目录下的PushSDK当做Module导入到自己的工程,如下图所示:

       

注意:

  • PushSDK 3.0默认只提供armeabi和x86两种so文件夹,若主工程中的so文件夹与PushSDK下的so文件夹不一致,则可以有两种方式处理(选择一种即可):
  • 删除主工程下多余的so文件夹,与PushSDK下的so文件夹保持一致。 
    在官网PushSDK下载处,下载全平台so文件,添加缺少的so文件夹至 PushSDK下,使PushSDK的so文件夹与主工程的so文件夹保持一致。
  • 支持全平台SO文件下载支持全平台SO文件下载链接

    导入thirdparties\thirdparties_android_1.0.7目录下的utdid4all-1.1.5.3_proguard.jar到app中libs目录下。

 

3、配置Appkey和Secret

      在工程的Application Module的AndroidManifest.xml中的<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_APPKEYUMENG_MESSAGE_SECRET的值修改为和自己应用对应的值。

4、添加Channel ID

    你可以用Channel ID来标识App的推广渠道,作为推送消息时给用户分组的一个维度。设置方法如下,在Application Module的AndroidManifest.xml中的<Application>标签下添加:

     

<!--value的值填写渠道名称,例如yingyongbao。这里设置动态渠道变量-->
<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />

在app build.gradle中配置渠道

productFlavors {

    /*配置渠道*/
    productFlavors {
        yingyongbao {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
        }
        wandoujia {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
        }
        xiaomi {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
        }
    }
}

5、  配置build.gralde

  1. 在Application Module的build.gradle文件的dependencies下添加compile project(':PushSDK')
  2. 请确保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。

6 、 初始化PushSDK

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) {

    }
});

注意:

  • 请勿在调用register方法时做进程判断处理(主进程和channel进程均需要调用register方法才能保证长连接的正确建立)。
  • 若有需要,可以在Application的onCreate方法中创建一个子线程,并把mPushAgent.register这一行代码放到该子线程中去执行(请勿将PushAgent.getInstance(this)放到子线程中)。
  • device token是友盟+生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上不同应用对应的device token不一样。
  • 如需手动获取device token,可以调用mPushAgent.getRegistrationId()方法(需在注册成功后调用)。

2  统计应用启动数据

在所有的Activity 的onCreate 方法或在应用的BaseActivityonCreate方法中添加:

PushAgent.getInstance(context).onAppStart();

注意:

  • 此方法与统计分析sdk中统计日活的方法无关!请务必调用此方法!

  • 如果不调用此方法,不仅会导致按照"几天不活跃"条件来推送失效,还将导致广播发送不成功以及设备描述红色等问题发生。可以只在应用的主Activity中调用此方法,但是由于SDK的日志发送策略,有可能由于主activity的日志没有发送成功,而导致未统计到日活数据。

   register不成功,返回错误信息s=-11,s1=accs bindapp error,可查看https://blog.csdn.net/lknlll/article/details/78133392解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值