开发者社区 问答 正文

如何推通知给Android设备?



描述


推送通知给Android。
[backcolor=transparent]注:该接口默认只发送给在线设备,要发送离线保存消息请用 推送高级接口

请求参数

名称类型是否必须描述
ActionString操作接口名称,取值:PushNoticeToAndroid
AppKeyLongAppKey信息
TargetString推送目标:
  • DEVICE:根据设备推送
  • ACCOUNT:根据账号推送
  • ALIAS:根据别名推送
  • TAG:根据标签推送
  • ALL:推送给全部设备
TargetValueString根据Target来设定,多个值使用逗号分隔,最多支持100个。
  • Target=DEVICE,值如deviceid111,deviceid1111
  • Target=ACCOUNT,值如account111,account222
  • Target=ALIAS,值如alias111,alias222
  • Target=TAG,支持单Tag和多Tag,格式请参考标签格式
  • Target=ALL,值为ALL
TitleString发送的通知标题
BodyString发送的通知内容
ExtParametersString自定义的KV结构,供开发者扩展使用,针对Android设备。该参数要以json map的格式传入。


响应参数

名称类型描述
MessageIdString标志一次推送的消息ID


错误码

错误代码描述HTTP 状态码语义
InvalidTargetTarget must be [DEVICE、ACCOUNT、TAG、ALIAS、ALL].400Target只能取DEVICE、ACCOUNT、TAG、ALIAS、ALL其中之一进行发送
InvalidParameterThe specified Title.length can not be greater than 60.]400Title不能大于60个Byte(中文算三个)
AppLimitExceedThe specified payload beyond the permitted range(1800Byte).]400请求内容超过系统限制,请参考产品限制
InvalidJsonExtParameterThe specified ExtParameter is not valid json format of map.400ExtParameter参数应为json格式的map结构


示例



请求示例

  1. [backcolor=transparent]http[backcolor=transparent]:[backcolor=transparent]//cloudpush.aliyuncs.com/?Action=PushNoticeToAndroid
  2. [backcolor=transparent]&[backcolor=transparent]AppKey[backcolor=transparent]=[backcolor=transparent]23267207
  3. [backcolor=transparent]&[backcolor=transparent]Target[backcolor=transparent]=[backcolor=transparent]ALL[backcolor=transparent]&
  4. [backcolor=transparent]&[backcolor=transparent]TargetValue[backcolor=transparent]=[backcolor=transparent]ALL
  5. [backcolor=transparent]&[backcolor=transparent]Title[backcolor=transparent]=[backcolor=transparent]title
  6. [backcolor=transparent]&[backcolor=transparent]Body[backcolor=transparent]=[backcolor=transparent]body
  7. [backcolor=transparent]&[backcolor=transparent]ExtParameters[backcolor=transparent]={[backcolor=transparent]"key1"[backcolor=transparent]:[backcolor=transparent]"value1"[backcolor=transparent],[backcolor=transparent]"api_name"[backcolor=transparent]:[backcolor=transparent]"PushNoticeToAndroidRequest"[backcolor=transparent]}
  8. [backcolor=transparent]&<公共请求参数>


返回示例



XML格式

  1. [backcolor=transparent]<?[backcolor=transparent]xml version[backcolor=transparent]=[backcolor=transparent]'1.0'[backcolor=transparent] encoding[backcolor=transparent]=[backcolor=transparent]'UTF-8'[backcolor=transparent]?>
  2. [backcolor=transparent]<PushNoticeToAndroidResponse>
  3. [backcolor=transparent]    [backcolor=transparent]<RequestId>[backcolor=transparent]9998B3CC-ED9E-4CB3-A8FB-DCC61296BFBC[backcolor=transparent]</RequestId>
  4. [backcolor=transparent]    [backcolor=transparent]<MessageId>[backcolor=transparent]501029[backcolor=transparent]</MessageId>
  5. [backcolor=transparent]</PushNoticeToAndroidResponse>


JSON格式

  1. [backcolor=transparent]{
  2. [backcolor=transparent]  [backcolor=transparent]"RequestId"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"9998B3CC-ED9E-4CB3-A8FB-DCC61296BFBC"[backcolor=transparent],
  3. [backcolor=transparent]  [backcolor=transparent]"MessageId"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"501029"
  4. [backcolor=transparent]}

展开
收起
猫饭先生 2017-10-23 10:29:57 1555 分享 版权
阿里云 AI 助理回答

要向Android设备推送通知,您需要调用PushNoticeToAndroid接口。以下是操作的详细说明及参数配置指导:

请求参数配置

  1. Action: 必填,类型为String。设置为PushNoticeToAndroid,表示执行推送通知到Android设备的操作。

  2. AppKey: 必填,类型为Long。提供您的AppKey信息,用于标识应用。

  3. Target: 必填,类型为String。指定推送目标,可选值包括:

    • DEVICE: 根据设备ID推送。
    • ACCOUNT: 根据账号推送。
    • ALIAS: 根据别名推送。
    • TAG: 根据标签推送。
    • ALL: 推送给全部设备。

    针对不同的Target,需在TargetValue中提供相应的值,多个值以逗号分隔,总数不超过100个。

  4. TargetValue: 必填,类型为String。根据Target设定具体值,例如当Target为DEVICE时,填写设备ID列表。

  5. Title: 必填,类型为String。设置通知的标题,长度不能超过60个字节(中文字符算3个字节)。

  6. Body: 必填,类型为String。设置通知的内容。

  7. ExtParameters(可选): 类型为String。自定义的键值对结构,供开发者扩展使用,需为JSON map格式。

响应参数说明

  • MessageId: String类型,返回的标志此次推送消息的ID,可用于后续跟踪或日志查询。

错误码注意事项

  • InvalidTarget: 表示Target参数值不合法,仅能取DEVICEACCOUNTTAGALIASALL之一。
  • InvalidParameter: 当Title长度超过60个字节时触发。
  • AppLimitExceed: 请求内容大小超过系统限制,请参考产品文档中的限制说明。
  • InvalidJsonExtParameter: ExtParameter格式不正确,必须是有效的JSON map格式。

示例请求

尽管直接提供的示例链接无法访问,但您可以构造如下格式的HTTP请求进行测试:

http://cloudpush.aliyuncs.com/
?Action=PushNoticeToAndroid
&AppKey=您的AppKey
&Target=您的目标类型
&TargetValue=目标值,如deviceIds或aliases
&Title=您的通知标题
&Body=您的通知内容
&ExtParameters={"key1":"value1","key2":"value2"} // 如果有自定义参数
// 其它公共请求参数...

请确保在实际调用前,已充分了解并遵循阿里云EMAS移动推送服务的产品限制和计费方式,以及考虑是否需要设置离线保存(StoreOffline)等高级功能,这可能需要使用更高级的推送接口来实现。

SDK处理逻辑

在客户端(Android应用内),您需要集成EMAS Push SDK,并通过继承MessageReceiver类来处理接收到的通知。例如,可以重写onNotificationReceivedInApp方法来定制通知展示逻辑,以及showNotificationNow方法来决定是否拦截通知显示。

注意事项

  • 确保AppKey有效且与应用对应。
  • 严格遵守参数长度和格式要求,避免请求失败。
  • 考虑到离线设备,若需支持离线消息存储,请使用高级推送接口进行配置。
  • 测试推送功能时,建议先在小范围测试环境验证,再逐步扩大推送范围。

以上步骤和说明将帮助您成功向Android设备推送通知。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答