详细解答可以参考官方帮助文档
以下接口调用时,如有回调,均为异步执行,且回调不能为空。
1.1基本设置
SDK注册
初始化推送SDK,关联到云通道。
参数
context 应用上下文(需要ApplicationContext)callback 回调
void register(Context context, CommonCallback callback);
SDK动态注册接口
支持动态设置appKey,appSecret的注册接口
参数
context 应用上下文(需要ApplicationContext)appKey appSecretcallback 回调
void register(Context context, String appKey, String appSecret, CommonCallback callback);
启动信息统计
统计App启动信息。
void onAppStart();
获取设备标识
获取设备唯一标识。
返回
设备唯一标识。
String getDeviceId();
设置日志等级
需要在通道初始化之前设置;默认日志等级为CloudPushService.ERROR;
参数
logLevel 支持设置:CloudPushService.ERROR | CloudPushService.INFO | CloudPushService.DEBUG | CloudPushService.OFF(关闭Log)
void setLogLevel(int logLevel);
V2.3.6及以上版本支持)" class="reference-link">动态设置appKey(V2.3.6及以上版本支持)
动态设置appKey无需在manifest配置appKey务必在调用register注册接口之前调用该接口,否则动态设置失效
参数
appKey 需要设置的appKey
void setAppKey(String appKey);
V2.3.6及以上版本支持)" class="reference-link">动态设置appSecret(V2.3.6及以上版本支持)
动态设置appSecret无需在manifest配置appSecret务必在调用register注册接口之前调用该接口,否则动态设置失效
参数
appSecret 需要设置的appSecret
void setAppSecret(String appSecret);
V3.0.3及以上版本支持)" class="reference-link">打开推送通道(V3.0.3及以上版本支持)
用于在程序运行时动态打开推送通道全量推送场景下,打开推送通道存在2-3小时延迟。其他场景实时生效
参数
callback 回调
void turnOnPushChannel(CommonCallback callback);
V3.0.3及以上版本支持)" class="reference-link">关闭推送通道(V3.0.3及以上版本支持)
用于在程序运行时动态关闭推送通道全量推送场景下,关闭推送通道存在2-3小时延迟。其他场景实时生效
参数
callback 回调
void turnOffPushChannel(CommonCallback callback);
V3.0.3及以上版本支持)" class="reference-link">查询推送通道状态(V3.0.3及以上版本支持)
app运行时查询当前推送通道状态如果当前为打开状态,则通过callback.success(String response)回调传入’on’;反之则传入’off’
参数
callback 回调
void checkPushChannelStatus(CommonCallback callback);
V3.0.10及以上版本支持)" class="reference-link">设置消息接收IntentService(V3.0.10及以上版本支持)
通过IntentService组件接收消息回调设置后消息将通过该组件透出,不再通过MessageReceiver设置的IntentService需继承com.alibaba.sdk.android.push.AliyunMessageIntentService,并覆写相关回调方法
参数
messageIntentService 自定义接收消息IntentService的class
void setPushIntentService(Class messageIntentService);
1.2 账号API
绑定账号
将应用内账号和推送通道相关联,可以实现按账号的定点消息推送;设备只能绑定一个账号,同一账号可以绑定到多个设备;同一设备更换绑定账号时无需进行解绑,重新调用绑定账号接口即可生效;若业务场景需要先解绑后绑定,在解绑账号成功回调中进行绑定绑定操作,以此保证执行的顺序性;账户名设置支持64字节。
参数
account 绑定账号名callback 回调
void bindAccount(String account, CommonCallback callback);
解绑账号
将应用内账号和推送通道取消关联。
参数
callback 回调
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 回调
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 回调
void unbindTag(int target, String[] tags, String alias, CommonCallback callback);
查询标签
查询目标绑定标签,当前仅支持查询设备标签;查询结果可从回调onSuccess(response)的response获取;标签绑定成功且生效(10分钟内)后即可查询。
参数
target 目标类型,1: 本设备target(V2.3.5及以上版本) 目标类型,CloudPushService.DEVICE_TARGET:本设备;callback 回调
void listTags(int target, CommonCallback callback);
1.4 别名API
添加别名
设备添加别名;单个设备最多添加128个别名,且同一别名最多添加到128个设备;别名支持128字节。
参数
alias 别名callback 回调
void addAlias(String alias, CommonCallback callback);
删除别名
删除设备别名;支持删除指定别名和删除全部别名(alias = null || alias.length = 0)。
参数
alias 别名(alias = null or alias.length = 0时,删除设备全部别名)callback 回调
void removeAlias(String alias, CommonCallback callback);
查询别名
查询设备别名;查询结果可从回调onSuccess(response)的response中获取;从V3.0.9及以上版本开始,接口内部有5s短缓存,5s内多次调用只会请求服务端一次。
参数
callback 回调
void listAliases(CommonCallback callback);
1.5 通知设置API
设置通知声音
设置推送通知声音文件路径;若不调用本接口,默认获取资源id为R.raw.alicloud_notification_sound的资源文件;若没有获取到指定声音文件,取设备设置的消息声音。
参数
filePath 通知声音文件路径
void setNotificationSoundFilePath(String filePath);
设置通知栏图标
设置推送通知栏图标资源Bitmap。若不调用本接口,默认获取id为R.drawable.alicloud_notification_largeIcon的资源文件;若没有获取到指定图标文件,取App启动图标。
参数
icon 图标资源Bitmap
void setNotificationLargeIcon(Bitmap icon);
设置状态栏图标
设置推送状态栏图标资源Id;若不调用本接口,默认获取id为R.drawable.alicloud_notification_smallIcon的资源文件;若没有获取到指定资源文件Id,取App启动图标。
参数
iconId 图标资源Id
void setNotificationSmallIcon(int iconId);
设置免打扰时段
设置免打扰时间段,过滤所有通知与消息;免打扰时段仅支持设置一次,多次调用以最后一次调用设置时段为准;设置免打扰时段为00:00 - 00:00,可取消免打扰功能;(以下功能支持该用法,V2.3.5及以上版本使用关闭免打扰功能接口)全天免打扰可以设置为”0:0-23:59”免打扰时段设置对小米辅助弹窗通知无效。
参数
startHour 免打扰的起始时间(小时),24小时制,取值范围:0-23startMinute 免打扰起始时间(分钟),取值范围:0-59endHour 免打扰的结束时间(小时),24小时制,取值范围:0-23endMinute 免打扰结束时间(分钟),取值范围:0-59
void setDoNotDisturb(int startHour, int startMinute, int endHour, int endMinute, CommonCallback callback);
V2.3.5及以上版本支持)" class="reference-link">关闭免打扰功能(V2.3.5及以上版本支持)
关闭后,先前设置的免打扰时段失效免打扰功能默认是关闭的没有对应的开发免打扰功能接口,调用设置免打扰功能时段功能后自动打开免打扰功能
void closeDoNotDisturbMode();
V2.3.7及以上版本支持)" class="reference-link">删除所有通知接口(V2.3.7及以上版本支持)
删除推送SDK创建的所有通知若需要实现精准删除特定通知可以在onNotification回调中获取通知id,自行删除
void clearNotifications();
V3.0.6及以上版本支持)" class="reference-link">1.6 自建通知统计上报API(V3.0.6及以上版本支持)
本接口主要针对统计用户自建通知(通过阿里云推送发送透传消息,并在onMessage回调中自行创建通知)的删除/点击事件上报,其相关实现可以参考移动推送Android SDK:透传消息+用户自建通知最佳实践,如果您直接通过阿里云推送通知,无需使用相关接口。
自建通知点击上报接口
上报自建通知的点击事件请确保同一消息仅上报一次
参数
message 要上报点击事件的消息实例
void clickMessage(CPushMessage message);
自建通知删除上报接口
上报自建通知的删除事件请确保同一消息仅上报一次
参数
message 要上报删除事件的消息实例
void dismissMessage(CPushMessage message);
V3.0.11及以上版本支持)" class="reference-link">1.7 电话API(V3.0.11及以上版本支持)
为提高信息的到达率和实效性,扩展推送的使用场景,我们推出了推送与短信的融合通知模式。开发者可以设置在一定时间内,如果用户未收到或未点击推送,通过短信补发通知用户。具体方案可参考:推送短信融合。
为实现推送短信融合方案,需要在终端接入绑定/解绑电话号接口,接口详情如下。
绑定电话号将设备与电话号绑定
参数
phoneNumber 要绑定的手机号callback 回调
void bindPhoneNumber(String phoneNumber, CommonCallback callback);
解绑电话号解除当前设备与电话号的绑定关系
参数
callback 回调
void unbindPhoneNumber(CommonCallback callback);