我想将数据直接嵌入到 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(使用前将#替换为@)