Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de53b041 authored by kmccormick's avatar kmccormick
Browse files

Doc update: new reg error code + snippet

Change-Id: Ie8df1cc68ebe5a2a6589d34f16e554e36dca546e
parent 602c63f8
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -263,6 +263,21 @@ message is &quot;nack&quot;. A NACK message contains:</p>
&lt;/message&gt;
</pre>

<p>Device Message Rate Exceeded:</p>

<pre>&lt;message id=&quot;...&quot;&gt;
  &lt;gcm xmlns=&quot;google:mobile:data&quot;&gt;
  {
    &quot;message_type&quot;:&quot;nack&quot;,
    &quot;message_id&quot;:&quot;msgId1&quot;,
    &quot;from&quot;:&quot;REGID&quot;,
    &quot;error&quot;:&quot;DEVICE_MESSAGE_RATE_EXCEEDED&quot;,
    &quot;error_description&quot;:&quot;Downstream message rate exceeded for this registration id&quot;
  }
  &lt;/gcm&gt;
&lt;/message&gt;
</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>
@@ -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>
+15 −0
Original line number Diff line number Diff line
@@ -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