- 安卓端重要方法简介:
CloudPushService pushService = PushServiceFactory.getCloudPushService();
pushService.closeDoNotDisturbMode(); //设置免打扰
pushService.setDoNotDisturb(0, 0, 23, 59, new CommonCallback() {});
pushService.turnOnPushChannel(CommonCallback callback); ---存在2-3小时延迟。
pushService.turnOffPushChannel(CommonCallback callback); ---存在2-3小时延迟。
//将设备deviceId注册到云推送,即绑定过设备
pushService.register(applicationContext, new CommonCallback() {});
查询推送通道状态:pushService.checkPushChannelStatus(CommonCallback callback);
//通过callback.success(String response)回调传入’on’;反之则传入’off’
- 其他:
- pushService.bindAccount(String account, CommonCallback callback);
一个设备只能绑定一个账号,而同一账号可以绑定到多个设备;也就是说,你所推送的消息若是公共的,可以采用按设备推送,而若是指定发给某人的,就要采用安账号推送了,但是需要注意,当在app中用户退出当前应用后,再次直接登录后并不走Application,所以你若是在XxApplication中调用了bindAccount(),那么在新用户登录后是并未bindAccount()的,需要我们在登录成功后,或在吊起开启推送方法turnOnPushChannel(V3.03)或pushService.closeDoNotDisturbMode();而且在关闭状态下所有推送的消失不会再次收到;
- 对于通知开关的状态,可以保存到本地sp中(0,1,"")三种形式,q其中的""表示第一次启动或数据被清理的情况,当为""时需要请求(自己后台或第三方)获得当前开关状态;
- 绑定标签到指定目标如: 设备、账号和别名绑定标签,其绑定类型由参数target指定;
bindTag(int target, String[] tags, String alias, CommonCallback callback);
参数解析: target(V2.3.5及以上版本) 目标类型,CloudPushService.DEVICE_TARGET:本设备;CloudPushService.ACCOUNT_TARGET:本账号; CloudPushService.ALIAS_TARGET:别名
tags 标签(标签数组)alias 指定绑定的别名(仅当target = 3时生效,其它两种情况不用传,但标记账号前需要保证一定绑定了账号)callback 回调监听;
- 查询标签:pushService.listTags(int target, CommonCallback callback); //当前仅支持查询设备标签;
- 添加别名 pushService.addAlias(String alias, CommonCallback callback);
要求:单个设备最多添加128个别名,且同一别名最多添加到128个设备;
- 删除别名: removeAlias(String alias, CommonCallback callback);
- 查询别名:listAliases(CommonCallback callback);
- 设置通知声音:setNotificationSoundFilePath(String filePath);//默认获取资源id为R.raw.alicloud_notification_sound的资源文件
- 设置通知栏图标:setNotificationLargeIcon(Bitmap icon);默认获取R.drawable.alicloud_notification_largeIcon资源文件;其次获取App启动图标。
- 设置状态栏图标:setNotificationSmallIcon(int iconId);默认获取R.drawable.alicloud_notification_smallIcon资源,其次获取App启动图标。
11.删除所有通知:clearNotifications();若需要实现精准删除特定通知可以在onNotification回调中获取通知id,自行删除;
- 阿里云自带的消息\通知接收方法:
- 消息接收回调:void onMessage(Context context, CPushMessage message); //消息不会弹窗,只是回调该方法。
- 通知接收回调:void onNotification(Context context, String title, String summary, Map<String, String> extraMap) //可进行通知预先处理操作,如修改、删除等;
- 通知打开回调:void onNotificationOpened(Context context, String title, String summary, String extraMap);
- 无跳转逻辑通知打开回调:void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap);
- 通知被删除回调:void onNotificationRemoved(Context context, String messageId);
- 我们自定义通知样式时,并且设置推送应用内到达不创建通知弹窗时调用该回调,且此时不调用自带的onNotification(),而是调用通知在应用内到达回调:
void onNotificationReceivedInApp(Context context, String title, String summary, Map<String, String> extraMap, int openType, String openActivity, String openUrl); //这时需要我们自己定义通知栏样式,以及弹窗被点击后的操作;
值得一提的是: 后台的消息推送,是通过请求第三方接口,并设置了必要的传递参数实现的,然后第三方校验后会推送消息给所要求的移动端,移动端接收到消息后,按照第三方的文档说明,对消息和通知进行区分并处理;
参考文档:
方法参考文档: https://help.aliyun.com/document_detail/30066.html?spm=5176.doc30064.6.643.M8MOWc#h3-1-1-
小米华为添加辅助通道配置:https://help.aliyun.com/document_detail/30067.html?spm=5176.doc30066.6.644.yPpHiI
.