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中的标签下添加:






     把上述的UMENG_APPKEYUMENG_MESSAGE_SECRET的值修改为和自己应用对应的值。

4、添加Channel ID

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

     


在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解决。

你可能感兴趣的:(Android中级)