Loading docs/html/google/gcm/ccs.jd +16 −2 Original line number Diff line number Diff line Loading @@ -263,6 +263,21 @@ message is "nack". A NACK message contains:</p> </message> </pre> <p>Device Message Rate Exceeded:</p> <pre><message id="..."> <gcm xmlns="google:mobile:data"> { "message_type":"nack", "message_id":"msgId1", "from":"REGID", "error":"DEVICE_MESSAGE_RATE_EXCEEDED", "error_description":"Downstream message rate exceeded for this registration id" } </gcm> </message> </pre> <p>The following table lists NACK error codes. Unless otherwise indicated, a NACKed message should not be retried. Unexpected NACK error codes should be treated the same as {@code INTERNAL_SERVER_ERROR}.</p> Loading Loading @@ -303,8 +318,7 @@ message should be immediately retried over another connection.</td> <td>{@code DEVICE_MESSAGE_RATE_EXCEEDED}</td> <td>The rate of messages to a particular device is too high. You should reduce the number of messages sent to this device and should not immediately retry sending to this device. This error code replaces {@code QUOTA_EXCEEDED}, which has been deprecated.</td> sending to this device. This error code is replacing {@code QUOTA_EXCEEDED}.</td> </tr> <tr> <td>{@code SERVICE_UNAVAILABLE}</td> Loading docs/html/google/gcm/client.jd +15 −0 Original line number Diff line number Diff line Loading @@ -452,6 +452,21 @@ private void storeRegistrationId(Context context, String regId) { editor.commit(); }</pre> <h4 id="reg-errors">Handle registration errors</h4> <p>As stated above, an Android app must register with GCM servers and get a registration ID (regID) before it can receive messages. A given regID is not guaranteed to last indefinitely, so the first thing your app should always do is check to make sure it has a valid regID (as shown in the code snippets above).</p> <p>In addition to confirming that it has a valid regID, your app should be prepared to handle the registration error {@code TOO_MANY_REGISTRATIONS}. This error indicates that the device has too many apps registered with GCM. The error only occurs in cases where there are extreme numbers of apps, so it should not affect the average user. The remedy is to prompt the user to delete some of the other GCM-enabled apps from the device to make room for the new one.</p> <h3 id="sample-send">Send a message</h3> <p>When the user clicks the app's <strong>Send</strong> button, the app sends an upstream message using the Loading Loading
docs/html/google/gcm/ccs.jd +16 −2 Original line number Diff line number Diff line Loading @@ -263,6 +263,21 @@ message is "nack". A NACK message contains:</p> </message> </pre> <p>Device Message Rate Exceeded:</p> <pre><message id="..."> <gcm xmlns="google:mobile:data"> { "message_type":"nack", "message_id":"msgId1", "from":"REGID", "error":"DEVICE_MESSAGE_RATE_EXCEEDED", "error_description":"Downstream message rate exceeded for this registration id" } </gcm> </message> </pre> <p>The following table lists NACK error codes. Unless otherwise indicated, a NACKed message should not be retried. Unexpected NACK error codes should be treated the same as {@code INTERNAL_SERVER_ERROR}.</p> Loading Loading @@ -303,8 +318,7 @@ message should be immediately retried over another connection.</td> <td>{@code DEVICE_MESSAGE_RATE_EXCEEDED}</td> <td>The rate of messages to a particular device is too high. You should reduce the number of messages sent to this device and should not immediately retry sending to this device. This error code replaces {@code QUOTA_EXCEEDED}, which has been deprecated.</td> sending to this device. This error code is replacing {@code QUOTA_EXCEEDED}.</td> </tr> <tr> <td>{@code SERVICE_UNAVAILABLE}</td> Loading
docs/html/google/gcm/client.jd +15 −0 Original line number Diff line number Diff line Loading @@ -452,6 +452,21 @@ private void storeRegistrationId(Context context, String regId) { editor.commit(); }</pre> <h4 id="reg-errors">Handle registration errors</h4> <p>As stated above, an Android app must register with GCM servers and get a registration ID (regID) before it can receive messages. A given regID is not guaranteed to last indefinitely, so the first thing your app should always do is check to make sure it has a valid regID (as shown in the code snippets above).</p> <p>In addition to confirming that it has a valid regID, your app should be prepared to handle the registration error {@code TOO_MANY_REGISTRATIONS}. This error indicates that the device has too many apps registered with GCM. The error only occurs in cases where there are extreme numbers of apps, so it should not affect the average user. The remedy is to prompt the user to delete some of the other GCM-enabled apps from the device to make room for the new one.</p> <h3 id="sample-send">Send a message</h3> <p>When the user clicks the app's <strong>Send</strong> button, the app sends an upstream message using the Loading