开发者社区> 问答> 正文

1. CloudPushService接口

已解决

展开
收起
2018-02-05 16:30:21 1042 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    以下接口调用时,如有回调,均为异步执行,且回调不能为空。

    1.1基本设置


    SDK注册

    • 初始化推送SDK,关联到云通道。

    参数

    • context 应用上下文(需要ApplicationContext
    • callback 回调
    1. void register(Context context, CommonCallback callback);

    SDK动态注册接口

    • 支持动态设置appKey,appSecret的注册接口

    参数

    • context 应用上下文(需要ApplicationContext
    • appKey
    • appSecret
    • callback 回调
    1. void register(Context context, String appKey, String appSecret, CommonCallback callback);

    启动信息统计

    • 统计App启动信息。
    1. void onAppStart();

    获取设备标识

    • 获取设备唯一标识。

    返回

    • 设备唯一标识。
    1. String getDeviceId();

    设置日志等级

    • 需要在通道初始化之前设置;
    • 默认日志等级为CloudPushService.ERROR

    参数

    • logLevel 支持设置:CloudPushService.ERROR | CloudPushService.INFO | CloudPushService.DEBUG | CloudPushService.OFF(关闭Log)
    1. void setLogLevel(int logLevel);

    动态设置appKey(V2.3.6及以上版本支持)

    • 动态设置appKey无需在manifest配置appKey
    • 务必在调用register注册接口之前调用该接口,否则动态设置失效

    参数

    • appKey 需要设置的appKey
    1. void setAppKey(String appKey);

    动态设置appSecret(V2.3.6及以上版本支持)

    • 动态设置appSecret无需在manifest配置appSecret
    • 务必在调用register注册接口之前调用该接口,否则动态设置失效

    参数

    • appSecret 需要设置的appSecret
    1. void setAppSecret(String appSecret);

    打开推送通道(V3.0.3及以上版本支持)

    • 用于在程序运行时动态打开推送通道
    • 全量推送场景下,打开推送通道存在2-3小时延迟。其他场景实时生效

    参数

    • callback 回调
    1. void turnOnPushChannel(CommonCallback callback);

    关闭推送通道(V3.0.3及以上版本支持)

    • 用于在程序运行时动态关闭推送通道
    • 全量推送场景下,关闭推送通道存在2-3小时延迟。其他场景实时生效

    参数

    • callback 回调
    1. void turnOffPushChannel(CommonCallback callback);

    查询推送通道状态(V3.0.3及以上版本支持)

    • app运行时查询当前推送通道状态
    • 如果当前为打开状态,则通过callback.success(String response)回调传入’on’;反之则传入’off’

    参数

    • callback 回调
    1. void checkPushChannelStatus(CommonCallback callback);

    设置消息接收IntentService(V3.0.10及以上版本支持)

    • 通过IntentService组件接收消息回调
    • 设置后消息将通过该组件透出,不再通过MessageReceiver
    • 设置的IntentService需继承com.alibaba.sdk.android.push.AliyunMessageIntentService,并覆写相关回调方法

    参数

    • messageIntentService 自定义接收消息IntentService的class
    1. void setPushIntentService(Class messageIntentService);

    1.2 账号API


    绑定账号

    • 将应用内账号和推送通道相关联,可以实现按账号的定点消息推送;
    • 设备只能绑定一个账号,同一账号可以绑定到多个设备;
    • 同一设备更换绑定账号时无需进行解绑,重新调用绑定账号接口即可生效;
    • 若业务场景需要先解绑后绑定,在解绑账号成功回调中进行绑定绑定操作,以此保证执行的顺序性;
    • 账户名设置支持64字节。

    参数

    • account 绑定账号名
    • callback 回调
    1. void bindAccount(String account, CommonCallback callback);

    解绑账号

    • 将应用内账号和推送通道取消关联。

    参数

    • callback 回调
    1. void unbindAccount(CommonCallback callback);

    1.3 标签API


    绑定标签

    • 绑定标签到指定目标;
    • 支持向设备、账号和别名绑定标签,绑定类型由参数target指定;
    • 绑定标签在10分钟内生效;
    • App最多支持绑定1万个标签,单个标签最大支持128字符。

    参数

    • target 目标类型,1:本设备; 2:本设备绑定账号; 3:别名
    • target(V2.3.5及以上版本) 目标类型,CloudPushService.DEVICE_TARGET:本设备; CloudPushService.ACCOUNT_TARGET:本账号; CloudPushService.ALIAS_TARGET:别名
    • tags 标签(数组输入)
    • alias 别名(仅当target = 3时生效)
    • callback 回调
    1. void bindTag(int target, String[] tags, String alias, CommonCallback callback);

    解绑标签

    • 解绑指定目标标签;
    • 支持解绑设备、账号和别名标签,解绑类型由参数target指定;
    • 解绑标签在10分钟内生效;
    • 解绑标签只是解除设备和标签的绑定关系,不等同于删除标签,即该APP下标签仍然存在,系统目前不支持标签的删除。

    参数

    • target 目标类型,1:本设备; 2:本设备绑定账号; 3:别名。
    • target(V2.3.5及以上版本) 目标类型,CloudPushService.DEVICE_TARGET:本设备; CloudPushService.ACCOUNT_TARGET:本账号; CloudPushService.ALIAS_TARGET:别名
    • tags 标签(数组输入)
    • alias 别名(仅当target = 3时生效)
    • callback 回调
    1. void unbindTag(int target, String[] tags, String alias, CommonCallback callback);

    查询标签

    • 查询目标绑定标签,当前仅支持查询设备标签;
    • 查询结果可从回调onSuccess(response)的response获取;
    • 标签绑定成功且生效(10分钟内)后即可查询。

    参数

    • target 目标类型,1: 本设备
    • target(V2.3.5及以上版本) 目标类型,CloudPushService.DEVICE_TARGET:本设备;
    • callback 回调
    1. void listTags(int target, CommonCallback callback);

    1.4 别名API


    添加别名

    • 设备添加别名;
    • 单个设备最多添加128个别名,且同一别名最多添加到128个设备;
    • 别名支持128字节。

    参数

    • alias 别名
    • callback 回调
    1. void addAlias(String alias, CommonCallback callback);

    删除别名

    • 删除设备别名;
    • 支持删除指定别名和删除全部别名(alias = null || alias.length = 0)。

    参数

    • alias 别名(alias = null or alias.length = 0时,删除设备全部别名)
    • callback 回调
    1. void removeAlias(String alias, CommonCallback callback);

    查询别名

    • 查询设备别名;
    • 查询结果可从回调onSuccess(response)的response中获取;
    • 从V3.0.9及以上版本开始,接口内部有5s短缓存,5s内多次调用只会请求服务端一次。

    参数

    • callback 回调
    1. void listAliases(CommonCallback callback);

    1.5 通知设置API


    设置通知声音

    • 设置推送通知声音文件路径;
    • 若不调用本接口,默认获取资源id为R.raw.alicloud_notification_sound的资源文件;
    • 若没有获取到指定声音文件,取设备设置的消息声音。

    参数

    • filePath 通知声音文件路径
    1. void setNotificationSoundFilePath(String filePath);

    设置通知栏图标

    • 设置推送通知栏图标资源Bitmap。
    • 若不调用本接口,默认获取id为R.drawable.alicloud_notification_largeIcon的资源文件;
    • 若没有获取到指定图标文件,取App启动图标。

    参数

    • icon 图标资源Bitmap
    1. void setNotificationLargeIcon(Bitmap icon);

    设置状态栏图标

    • 设置推送状态栏图标资源Id;
    • 若不调用本接口,默认获取id为R.drawable.alicloud_notification_smallIcon的资源文件;
    • 若没有获取到指定资源文件Id,取App启动图标。

    参数

    • iconId 图标资源Id
    1. void setNotificationSmallIcon(int iconId);

    设置免打扰时段

    • 设置免打扰时间段,过滤所有通知与消息;
    • 免打扰时段仅支持设置一次,多次调用以最后一次调用设置时段为准;
    • 设置免打扰时段为00:00 - 00:00,可取消免打扰功能;(以下功能支持该用法,V2.3.5及以上版本使用关闭免打扰功能接口)
    • 全天免打扰可以设置为”0:0-23:59”
    • 免打扰时段设置对小米辅助弹窗通知无效。

    参数

    • startHour 免打扰的起始时间(小时),24小时制,取值范围:0-23
    • startMinute 免打扰起始时间(分钟),取值范围:0-59
    • endHour 免打扰的结束时间(小时),24小时制,取值范围:0-23
    • endMinute 免打扰结束时间(分钟),取值范围:0-59
    1. void setDoNotDisturb(int startHour, int startMinute, int endHour, int endMinute, CommonCallback callback);

    关闭免打扰功能(V2.3.5及以上版本支持)

    • 关闭后,先前设置的免打扰时段失效
    • 免打扰功能默认是关闭的
    • 没有对应的开发免打扰功能接口,调用设置免打扰功能时段功能后自动打开免打扰功能
    1. void closeDoNotDisturbMode();

    删除所有通知接口(V2.3.7及以上版本支持)

    • 删除推送SDK创建的所有通知
    • 若需要实现精准删除特定通知可以在onNotification回调中获取通知id,自行删除
    1. void clearNotifications();

    1.6 自建通知统计上报API(V3.0.6及以上版本支持)


    本接口主要针对统计用户自建通知(通过阿里云推送发送透传消息,并在onMessage回调中自行创建通知)的删除/点击事件上报,其相关实现可以参考移动推送Android SDK:透传消息+用户自建通知最佳实践,如果您直接通过阿里云推送通知,无需使用相关接口。

    自建通知点击上报接口

    • 上报自建通知的点击事件
    • 请确保同一消息仅上报一次

    参数

    • message 要上报点击事件的消息实例
    1. void clickMessage(CPushMessage message);

    自建通知删除上报接口

    • 上报自建通知的删除事件
    • 请确保同一消息仅上报一次

    参数

    • message 要上报删除事件的消息实例
    1. void dismissMessage(CPushMessage message);

    1.7 电话API(V3.0.11及以上版本支持)


    为提高信息的到达率和实效性,扩展推送的使用场景,我们推出了推送与短信的融合通知模式。开发者可以设置在一定时间内,如果用户未收到或未点击推送,通过短信补发通知用户。具体方案可参考:推送短信融合

    为实现推送短信融合方案,需要在终端接入绑定/解绑电话号接口,接口详情如下。

    绑定电话号

    将设备与电话号绑定

    参数

    • phoneNumber 要绑定的手机号
    • callback 回调
    1. void bindPhoneNumber(String phoneNumber, CommonCallback callback);

    解绑电话号

    解除当前设备与电话号的绑定关系

    参数

    • callback 回调
    1. void unbindPhoneNumber(CommonCallback callback);

    2018-02-06 19:16:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载