title: Android GCM Some devices not registering
body: <p>I have an app in Google Play with 5000 downloads.</p>
  
  <p>Of those 5000, 900 have failed to store a GCM Registration ID on my server.</p>
  
  <p>I am concerned about having an 18% failure rate and am struggling to find out why this is happening. It is definitely not an issue passing an Id to my server and storing, so I assume it must be a failure of registration. Has anyone come across anything like this with their projects? Code as below:</p>
  
  <pre><code>// Fired every time the app is booted in Main Activity
  private void setupGCM()
  {
      String gcmRegId = GCMRegistrar.getRegistrationId(this);
      if (gcmRegId.equals(""))
      {
          GCMRegistrar.register(this, AppProperties.GCM_SENDER_ID);
      } else
      {
          // This is well tested and is not the issue
          ServerUtils.sUpdatePushToken(this, gcmRegId);
      }
  }
  
  // GCMIntentService Class onRegistered
  @Override
  protected void onRegistered(Context context, String registrationId)
  {
      mContext = context;
      if (!registrationId.equals(""))
      {
          AppProperties.GCM_REGISTRATION_ID = registrationId;
          new UpdateGCMRegistrationIdAsync().execute();
      } else
      {
          GCMRegistrar.setRegisteredOnServer(context, false);
      }
  }
  
  // GCMIntentService Class  My Async class for updating Reg Id
  private class UpdateGCMRegistrationIdAsync extends AsyncTask&lt;Integer, Integer, Void&gt;
  {
      @Override
      protected Void doInBackground(Integer... params)
      {           
          ServerUtils.sUpdatePushToken(mContext, AppProperties.GCM_REGISTRATION_ID);
          return null;
      }
  }
  </code></pre>