48

更新:不推荐使用 GCM,请使用FCM

GCM 服务器颁发的注册 ID 的最大长度是多少?GCM 文档不提供此信息。谷歌搜索显示,注册 ID 本质上不是固定长度,长度可达 4K(4096 字节)。但这些不是谷歌的官方答案。我目前正在接收长度为 162 个字符的注册 ID。有人可以帮忙吗?

4

3 回答 3

42

在 android-gcm 论坛上,谷歌的开发人员确认它是 4k

于 2012-11-29T10:04:18.243 回答
21

我也有兴趣知道这件事。我的 reg id 大小为 183 个字符。我怀疑它不会超过 512 个字符,更不用说 4K 了。想象一下发送批量通知,4K reg id x 1000 = 4MB 消息大小!

最后,我只使用 MySQL 表中的“文本”类型来存储注册 ID。因此,即使谷歌向我发送 1K、2K 或 4K(非常不可能)的 reg id,我也能处理它。

更新:我遇到了一个新的 reg id 大小:205。

于 2012-07-26T14:52:17.650 回答
0

这就是GCM doc中所说的,

一个 JSON 对象,其字段表示消息有效负载数据的键值对。如果存在,有效负载数据将作为应用程序数据包含在 Intent 中,键是额外的名称。例如,"data":{"score":"3x1"} 将导致一个意图额外命名的分数,其值为字符串 3x1。

键/值对的数量没有限制,但消息的总大小(4kb)有限制。这些值可以是任何 JSON 对象,但我们建议使用字符串,因为无论如何这些值都会在 GCM 服务器中转换为字符串。

如果要包含对象或其他非字符串数据类型(如整数或布尔值),则必须自己转换为字符串。另请注意,密钥不能是保留字(from 或任何以 google. 开头的单词)。

让事情稍微复杂一点的是,在有效载荷数据中技术上允许使用一些保留字(例如 collapse_key)。但是,如果请求中还包含该单词,则请求中的值将覆盖有效负载数据中的值。因此,即使在技术上允许的情况下,也不建议使用在此表中定义为字段名称的词。可选的。

于 2013-03-29T09:17:56.253 回答