我如何知道我的 GCM 消息是否足够小(< 4kb)来发送? (如何获取字符串的大小?)

2024-04-14

我想将数据直接嵌入到 GCM(Google Cloud Message)中,以帮助我的应用程序跳过到服务器的往返。

Google 表示总数据负载需要控制在 4kb 以内。数据使用[键,值]对发送。假设我做了这样的事情:

 String key = "key";
 String data = "data";
 Message message = new Message.Builder().addData(key, data).build();
 sender.send(message, regId, 5);

我怎么知道是否String data小于4kb?据我所知,没有办法真正做到String.getSize()或类似的。

如果好奇的话可以链接到文档:http://developer.android.com/training/cloudsync/gcm.html#embed http://developer.android.com/training/cloudsync/gcm.html#embed


您可以使用以下命令来获取字符串的字节:

String s = "some text here";
byte[] b = s.getBytes("UTF-8");
int bytes = b.length;

确保您指定了编码String,因为同一字符串不同的编码可能占用不同数量的字节。在上面的例子中,UTF-8用作编码。

要将字节转换为 kB,只需除以1024.

EDIT: Here's https://stackoverflow.com/a/4385653/1069068来自 Geobits 的评论对 Java 中不同编码的字节空间给出了一个很好且详细的答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何知道我的 GCM 消息是否足够小(< 4kb)来发送? (如何获取字符串的大小?) 的相关文章

随机推荐