概述

Android

iOS

REST API

服务端SDK

3. Android SDK API

3.1 注册

  • 注册接口是所有其他功能正常使用的基础。在每次应用启动时,必须调用该接口才能保证推送的正常进行。
  • 方法说明:
  1. 请在应用的第一个Activity类(启动的第一个类)的oncreate中添加下面代码。
  2. 或者在应用的appliation派生类的oncreate中添加下面一行代码。
//请一定确保四个参数都有值
//参数appKey为应用从ixintui申请的应用唯一标识符
//参数channel标识应用的分发渠道,用于统计推送信息,
//参数appVersion标识应用版本信息,用于统计推送信息
//参数miAppId小米appId
//参数miAppKey小米appKey
//参数mzAppId魅族appId
//参数mzAppKey魅族appKey
PushSdkApi.register(this, appKey, channel, appVersion);    
//如果您希望在对应设备上使用小米/华为/魅族推送,请使用以下注册接口:
PushSdkApi.register(this, appKey, channel, appVersion, miAppId, miAppKey, mzAppId, mzAppKey);    
  • 初始化(注册)是个异步过程,初始化(注册)成功后,其结果会被Receiver接收, 应用可以获取到一个token来唯一标识本设备。获取方法如下:
String extra = intent.getStringExtra(SdkConstants.ADDITION);
  • 函数无需重复多次调用,否则会在Receiver中重复返回结果token。

3.2 添加标签

  • 应用可以通过标签来标记特定的用户群体, 如“北京”用户,“男”用户, “商务”用户等。
  • Push系统根据伴随消息下发的标签来对特定人群进行消息发送。
  • 在push系统中,标签是一个16位的整数,应用将标签值和具体含义相对应。
  • 请注意,添加标签必须在成功初始化(注册)之后进行。 方法如下:
//tags: List<Short>类型
PushSdkApi.addTags(context, tags);
  • 其结果会异步返回到Receiver,通过如下方式获取。结果格式为json的整数数组,表示添加成功的tag列表。
String extra = intent.getStringExtra(SdkConstants.ADDITION);
  • 注意,由于系统限制一个用户最多设置16个tag,超出部分会被丢弃。返回结果中只有成功添加的tag。

3.3 删除标签

  • 和增加标签接口类似,本接口必须在成功注册之后才能调用。
  • 结果会异步返回到Receiver,只标识成功失败。失败唯一原因是数组中的tag都不存在。
//参数:tags:List<Short>类型
PushSdkApi.deleteTags(context, tags);

3.4 标签列表

  • 和添加标签接口类似,同样必须在成功注册之后才能调用
PushSdkApi.listTags(context);
  • 异步结果会返回给Receiver,使用如下方式获取标签,其格式为json整数数组。
String extra = intent.getStringExtra(SdkConstants.ADDITION);

3.5 暂停通知

  • 暂停接收消息,必须在成功注册之后才能调用,调用方式如下,异步结果会返回给Receiver。
PushSdkApi.suspendPush(context);

3.6 恢复通知

  • 恢复本应用接收消息,必须在成功注册之后才能调用,调用格式如下,异步结果会返回给Receiver。
PushSdkApi.resumePush(context);

3.7 通知是否暂停中

  • 必须在成功注册之后才能调用,异步结果会返回给Receiver, 通过如下方式获取。
//返回值:“true”标识已经暂停,”false”标识push正在运行
PushSdkApi.isSuspended(context);
String extra = intent.getStringExtra(SdkConstants.ADDITION);

3.8 打开或关闭基本信息统计

  • 打开或关闭基本信息统计。
//isEnable可以为true或false。
PushSdkApi.enableStat(context, isEnable);
  • 异步结果会返回给Receiver, 通过如下方式获取。
//返回值:"true"标识已经开启统计,"false"标识基本信息统计关闭
String extra = intent.getStringExtra(SdkConstants.ADDITION);

3.9 绑定别名

  • alias为String,请注意限制长度为40个字节,这里长度并不是字符数,而是字符转成字节表示后的字节数,比如一个英文字母的UTF-8只占用一个字节,但是一个中文字符要占用二到三个字节。
PushSdkApi.bindAlias(context, alias);
  • - 异步结果会返回给Receiver, 通过如下方式获取。请注意多次重复调用可能只会一次返回结果,绑定成功的是最后调用的值
// 返回值,0为成功,否则失败
int code = intent.getIntExtra(SdkConstants.CODE, 0);
// 绑定成功的别名
String aliasBound = intent.getStringExtra(SdkConstants.ADDITION);

3.10 解绑别名

  • alias为String,请注意限制长度为40个字节,这里长度并不是字符数,而是字符转成字节表示后的字节数,比如一个英文字母的UTF-8只占用一个字节,但是一个中文字符要占用二到三个字节。
PushSdkApi.unbindAlias(context, alias);
  • 异步结果会返回给Receiver, 通过如下方式获取。请注意多次重复调用可能只会一次返回结果,解绑成功的是最后调用的值
// 返回值,0为成功,否则失败
int code = intent.getIntExtra(SdkConstants.CODE, 0);
// 解绑成功的别名
String aliasUnbound = intent.getStringExtra(SdkConstants.ADDITION);

3.11 检查集成SDK结果

  • 本接口应在注册之前调用,来检查SDK是否被正确完整的集成。同步结果将直接返回给调用者。
PushSdkApi.getSdkIntegrationInfo(context);
// 返回值
// result字符串将集成结果展示出来,可以根据提示的信息做相应的检查和修改。
String result = PushSdkApi.getSdkIntegrationInfo(context);

3.12 角标相关接口

3.12.1 onResume

  • 如使用角标功能,(必须)在应用的BaseActivity中重写onResume()调用此接口,传入context,此方法初始化角标数据。
    @Override
    protected void onResume() {
        super.onResume();
        PushSdkApi.onResume(this);
    }

3.12.2 onPause

  • 如使用角标功能,(必须)在应用的BaseActivity中重写onPause()调用此接口,传入context,此方法更新角标数据。
    @Override
    protected void onPause() {
        super.onPause();
        PushSdkApi.onPause(this);
    }

3.12.3 setBadgeModel

  • 设置角标管理者:用于设置是否由App来管理角标的显示与清除。
void setBadgeModel(Context context, PushModel badgeModel);
badgeModel值 参数含义
PUSH_MODEL
(默认)
Push服务管理角标:(必调接口)
1.用户点击通知栏消息或者打开App会清除角标。
2.要求开发者在应用的BaseActivity中重写onResume()调用onResume()接口,传入context。
3.setBadgeModel(context, true)时,不建议开发者调用管理角标接口。
APP_MODEL App管理角标:
1.角标的显示可以由App自己管理,收到推送时触发。
2.角标的清除也由App自己管理,用户行为不影响角标值。
3.与Push服务管理的区别在于不做清除角标操作,由开发者在App内手动调用PushSDK相关接口设置与清除角标。

3.12.4 setBadgeNum

  • 设置角标:用于设置角标的显示值。
//badgeNum:显示的角标值。
void setBadgeNum(Context context, int badgeNum);
badgeNum参数范围 含义
>0 设置App的角标为badgeNum
=0 清除当前应用的角标
<0 无效参数

3.12.5 incrBadge

  • 改变角标值:用于设置角标的增减。
void incrBadge(Context context, int incrNum);
//incrNum:显示在现角标的基础上加incrNum后的值。
increaseNum参数范围 含义
!=0 在现有角标值上加increaseNum,显示计算后得到的badgeNum
=0 无效参数

3.12.6 clearBadge

  • 清除角标:清除指定App的角标。
void clearBadge(Context context);

3.12.7 openMIBadge

  • 是否开启小米系统桌面角标管理:您可以自主选择由小米系统桌面或PushSDK管理角标。
void openMIBadge(Context context, boolean isOpen);
isOpen值 含义(前提为当前小米系统桌面)
true PushSDK管理角标,可自定义角标显示值,但是通知栏会显示一条提醒通知
false MIUI Launcher管理角标,小米系统桌面自带角标显示功能,角标值不可自定义,每发送一条通知消息角标值+1