在android GCM文档中,据说有效负载的限制为4096字节.
但是,我发现我可以发送16834个有效载荷.
我犯了错误吗?我按如下方式计算了长度:
Map<Object, Object> jsonRequest = new HashMap<Object, Object>();
setJsonField(jsonRequest, GCMConstants.PARAM_TIME_TO_LIVE, message.getTimeToLive());
setJsonField(jsonRequest, GCMConstants.PARAM_COLLAPSE_KEY, message.getCollapseKey());
setJsonField(jsonRequest, GCMConstants.PARAM_DELAY_WHILE_IDLE, message.isDelayWhileIdle());
jsonRequest.put(GCMConstants.JSON_REGISTRATION_IDS, registrationIds);
Map<String, Object> payload = message.getData();
if (!payload.isEmpty()) {
jsonRequest.put(GCMConstants.JSON_PAYLOAD, payload);
}
String requestBody = gson.toJson(jsonRequest);
System.out.println(requestBody.getBytes("UTF-8").length);
Run Code Online (Sandbox Code Playgroud)
此外,如果有效载荷太长,GCM的响应是什么?
在Android GCM文档中,据说有效负载限制为4096字节.
有效载荷的4096字节是否包含registration_id长度?我发现我可以发送一个有效载荷为16038字节的消息(包括registration_ids).