title: GCMRegistrar.register does not work
body: <p>I am Trying to use GCM on my app, but <code>GCMRegistrar.register</code> always returns empty string. Here is my Manifest  :</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>&lt;uses-sdk
      android:minSdkVersion="9"
      android:targetSdkVersion="17" /&gt;
  
  &lt;uses-permission android:name="android.permission.CAMERA" /&gt;
  &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
  &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
  &lt;uses-permission android:name="net.andromedya.maps.permission.MAPS_RECEIVE" /&gt;
  &lt;uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
  &lt;uses-permission android:name="android.permission.CALL_PHONE" /&gt;
  &lt;uses-permission android:name="android.permission.GET_ACCOUNTS" /&gt;
  &lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt;
  &lt;uses-permission android:name="net.andromeya.permission.C2D_MESSAGE" /&gt;
  &lt;uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  &lt;uses-permission android:name="android.permission.VIBRATE" /&gt;
  
  &lt;permission
      android:name="net.andromedya.permission.C2D_MESSAGE"
      android:protectionLevel="signature" /&gt;
  &lt;permission
      android:name="net.andromedya.permission.MAPS_RECEIVE"
      android:protectionLevel="signature" /&gt;
  
  &lt;uses-feature
      android:glEsVersion="0x00020000"
      android:required="true" /&gt;
  
  &lt;supports-screens
      android:anyDensity="true"
      android:largeScreens="true"
      android:normalScreens="true"
      android:smallScreens="true"
      android:xlargeScreens="true" /&gt;
  
  &lt;application
      android:allowBackup="true"
      android:hardwareAccelerated="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/Theme.Sherlock.Light" &gt;
      &lt;activity
          android:name="net.andromedya.activities.MainActivity"
          android:hardwareAccelerated="true"
          android:launchMode="singleTask"
          android:screenOrientation="portrait" &gt;
      &lt;/activity&gt;
      &lt;activity
          android:name="net.andromedya.activities.AcBuEkrani"
          android:label="Example App"
          android:screenOrientation="portrait"
          android:theme="@style/Theme.Sherlock.Light.NoActionBar" &gt;
          &lt;intent-filter&gt;
              &lt;action android:name="android.intent.action.MAIN" /&gt;
  
              &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
          &lt;/intent-filter&gt;
      &lt;/activity&gt;
  
  
      &lt;meta-data
          android:name="com.google.android.maps.v2.API_KEY"
          android:value="AIza--------------------------AmmWJmePg" /&gt;
  
      &lt;receiver
          android:name="com.google.android.gcm.GCMBroadcastReceiver"
          android:permission="com.google.android.c2dm.permission.SEND" &gt;
          &lt;intent-filter&gt;
  
              &lt;!-- Receives the actual messages. --&gt;
              &lt;action android:name="com.google.android.c2dm.intent.RECEIVE" /&gt;
              &lt;!-- Receives the registration id. --&gt;
              &lt;action android:name="com.google.android.c2dm.intent.REGISTRATION" /&gt;
  
              &lt;category android:name="net.andromedya.activities" /&gt;
          &lt;/intent-filter&gt;
      &lt;/receiver&gt;
  
      &lt;service android:name="net.andromedya.activities.GCMIntentService" /&gt;
  &lt;/application&gt;
  </code></pre>
  
  <p></p>
  
  <p>Here is my broadcast receiver :</p>
  
  <pre><code>private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() {
      @Override
      public void onReceive(Context context, Intent intent) {
          String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
          // Waking up mobile if it is sleeping
          WakeLocker.acquire(getActivity());
  
          Toast.makeText(getActivity(), "New Message: " + newMessage,
                  Toast.LENGTH_LONG).show();
  
          // Releasing wake lock
          WakeLocker.release();
      }
  };
  </code></pre>
  
  <p>And intent service :</p>
  
  <p>public class GCMIntentService extends GCMBaseIntentService {</p>
  
  <pre><code>private static final String TAG = "GCMIntentService";
  
  public GCMIntentService() {
      super(SENDER_ID);
  }
  
  /**
   * Method called on device registered
   **/
  @Override
  protected void onRegistered(Context context, String registrationId) {
      Log.i(TAG, "Device registered: regId = " + registrationId);
      displayMessage(context, "Your device registred with GCM");
      // Log.d("NAME", MainActivity.name);
      ServerUtilities.register(context, "gcm aliko", "gcm aliko@a.com",
              registrationId);
  }
  
  /**
   * Method called on device un registred
   * */
  @Override
  protected void onUnregistered(Context context, String registrationId) {
      Log.i(TAG, "Device unregistered");
      displayMessage(context, getString(R.string.gcm_unregistered));
      ServerUtilities.unregister(context, registrationId);
  }
  
  /**
   * Method called on Receiving a new message
   * */
  @Override
  protected void onMessage(Context context, Intent intent) {
      Log.i(TAG, "Received message");
      String message = intent.getExtras().getString("price");
  
      displayMessage(context, message);
      // notifies user
      generateNotification(context, message);
  }
  
  /**
   * Method called on receiving a deleted message
   * */
  @Override
  protected void onDeletedMessages(Context context, int total) {
      Log.i(TAG, "Received deleted messages notification");
      String message = getString(R.string.gcm_deleted, total);
      displayMessage(context, message);
      // notifies user
      generateNotification(context, message);
  }
  
  /**
   * Method called on Error
   * */
  @Override
  public void onError(Context context, String errorId) {
      Log.i(TAG, "Received error: " + errorId);
      displayMessage(context, getString(R.string.gcm_error, errorId));
  }
  
  @Override
  protected boolean onRecoverableError(Context context, String errorId) {
      // log message
      Log.i(TAG, "Received recoverable error: " + errorId);
      displayMessage(context,
              getString(R.string.gcm_recoverable_error, errorId));
      return super.onRecoverableError(context, errorId);
  }
  
  /**
   * Issues a notification to inform the user that server has sent a message.
   */
  
  private static void generateNotification(Context context, String message) {
      int icon = R.drawable.ic_launcher;
      long when = System.currentTimeMillis();
      NotificationManager notificationManager = (NotificationManager) context
              .getSystemService(Context.NOTIFICATION_SERVICE);
      Notification notification = new Notification(icon, message, when);
  
      String title = context.getString(R.string.app_name);
  
      Intent notificationIntent = new Intent(context, MainActivity.class);
      // set intent so it does not start a new activity
      notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
              | Intent.FLAG_ACTIVITY_SINGLE_TOP);
      PendingIntent intent = PendingIntent.getActivity(context, 0,
              notificationIntent, 0);
      notification.setLatestEventInfo(context, title, message, intent);
      notification.flags |= Notification.FLAG_AUTO_CANCEL;
  
      // Play default notification sound
      notification.defaults |= Notification.DEFAULT_SOUND;
  
      // Vibrate if vibrate is enabled
      notification.defaults |= Notification.DEFAULT_VIBRATE;
      notificationManager.notify(0, notification);
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Here is my logcat : (there is no error or warning about this.)</p>
  
  <pre><code>onReceive: com.google.android.c2dm.intent.REGISTRATION
  GCM IntentService class: net.andromedya.GCMIntentService
  Acquiring wakelock
  </code></pre>