Android GCM ドキュメントでは、ペイロードには 4096 バイトの制限があると言われています。
しかし、16834 byes のペイロードを送信できることがわかりました。
私は間違いを犯しましたか?長さは次のように計算しました。
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);
さらに、ペイロードが長すぎる場合の GCM からの応答は何ですか?