title: GCM register didnot work on my emulator
body: <p>I had use GCM service on my app , I did my code after more resarches also from stack overflow members , and when I try to test the code on my emulator I didn't find any regiser info that tell me that my emulator is registered .Also I created my account on Google API to recienve any reports but I didn't find any thing. So I need your help on:</p>
  
  <p>1- please check my code and till my when the error I will feedback you with complete example :</p>
  
  <p></p>
  
  <pre><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.elarabygroup"
      android:versionCode="1"
      android:versionName="1.0" &gt;
  
      &lt;uses-sdk
          android:minSdkVersion="8"
          android:targetSdkVersion="15" /&gt;
  
      &lt;permission
          android:name="com.example.elarabygroup.permission.C2D_MESSAGE"
          android:protectionLevel="signature" /&gt;
  
      &lt;uses-permission android:name="com.example.elarabygroup.permission.C2D_MESSAGE" /&gt;
      &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&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="com.google.android.c2dm.permission.RECEIVE" /&gt;
      &lt;uses-permission android:name="android.permission.WRITE_SETTINGS" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&gt;
  
  
      &lt;application
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name"
          android:theme="@style/AppTheme" &gt;
          &lt;activity
              android:name=".ElarabyGroup"
              android:label="@string/title_activity_elaraby_group" &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;receiver
              android:name="com.google.android.gcm.GCMBroadcastReceiver"
              android:permission="com.google.android.c2dm.permission.SEND" &gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="com.google.android.c2dm.intent.RECEIVE" /&gt;
                  &lt;action android:name="com.google.android.c2dm.intent.REGISTRATION" /&gt;
  
                  &lt;category android:name="com.example.elarabygroup" /&gt;
              &lt;/intent-filter&gt;
          &lt;/receiver&gt;
  
          &lt;service android:name=".GCMIntentService" /&gt;
          &lt;!--
              android:name=".GCMIntentService"
              android:enabled="true" /&gt;
          --&gt;
      &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>package com.example.elarabygroup;
  
  import android.app.Activity;
  import android.app.AlertDialog;
  import android.app.PendingIntent;
  import android.content.BroadcastReceiver;
  import android.content.Context;
  import android.content.Intent;
  import android.net.ConnectivityManager;
  import android.net.NetworkInfo;
  import android.net.Uri;
  import android.os.Bundle;
  import android.util.Log;
  import android.webkit.WebView;
  import com.google.android.gcm.GCMRegistrar;
  
  
  public class ElarabyGroup extends Activity {
      private String TAG;
      private String SENDER_ID = "222874571774";
      private WebView webView;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_elaraby_group);
  
          try {
  
              Intent registrationIntent = new Intent(
                      "com.google.android.c2dm.intent.REGISTER");
  
              /* Registering for GCM /An Android application needs to register with GCM servers before it can receive messages*/
              registrationIntent.putExtra("app",
                      PendingIntent.getBroadcast(this, 0, new Intent(), 0));
              registrationIntent.putExtra("sender", SENDER_ID);
              startService(registrationIntent);
  
              Log.i(TAG, "[checkNotifRegistration] checkDevice");
              GCMRegistrar.checkDevice(this);
              Log.i(TAG, "[checkNotifRegistration] checkManifest");
              GCMRegistrar.checkManifest(this);
              if (GCMRegistrar.isRegistered(this)) {
                  Log.i(TAG,
                          "[checkNotifRegistration] reg id : "
                                  + GCMRegistrar.getRegistrationId(this));
              }
              final String regId = GCMRegistrar.getRegistrationId(this);
              if (regId.equals("")) {
                  // SENDER_ID is my project id into google account url
                  GCMRegistrar.register(this, SENDER_ID);
                  Log.i(TAG,
                          "[checkNotifRegistration] reg id : "
                                  + GCMRegistrar.getRegistrationId(this));
  
              } else {
                  Log.i(TAG, "[checkNotifRegistration] already registered as : "
                          + regId);
              }
          } catch (Exception e) {
              Log.e(TAG, "[checkNotifRegistration] Exception : " + e.getMessage());
              e.printStackTrace();
          }
  
          /*
           * GCMRegistrar.checkDevice(this); GCMRegistrar.checkManifest(this);
           * 
           * 
           * final String regId = GCMRegistrar.getRegistrationId(this); if
           * (regId.equals("")) { GCMRegistrar.register(this, "1111111111"); }
           * else { Log.v(TAG, "Already registered"); }
           */
          try {
  
              ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  
              if (con.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
                      &amp;&amp; con.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) {
                  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  
                  builder.setMessage("No Internet connection");
                  AlertDialog alert = builder.create();
                  alert.show();
  
              } else
  
              {
  
                  webView = (WebView) findViewById(R.id.webView1);
                  webView.getSettings().setJavaScriptEnabled(true);
                  webView.loadUrl("http://m.elarabygroup.com");
              }
  
          } catch (Exception e) {
  
              AlertDialog.Builder builder = new AlertDialog.Builder(this);
  
              builder.setMessage(e.getMessage().toString());
  
              AlertDialog alert = builder.create();
  
              String url = "http://m.elarabygroup.com/";
  
              Intent i = new Intent(Intent.ACTION_VIEW);
              i.setData(Uri.parse(url));
              startActivity(i);
  
          }
  
      }
      /*
      public class MyBroadcastReceiver extends BroadcastReceiver {
  
          @Override
          public final void onReceive(Context context, Intent intent) {
              GCMIntenetService.runIntentInService(context, intent);
              setResult(Activity.RESULT_OK, null, null);
          }
      }
      */
  
  }
  /*
   * @Override public boolean onCreateOptionsMenu(Menu menu) {
   * getMenuInflater().inflate(R.menu.activity_elaraby_group, menu); return true;
   * } }
   */
  </code></pre>
  
  <p></p>
  
  <pre><code>package com.example.elarabygroup;
  
  import com.google.android.gcm.GCMBaseIntentService;
  import com.google.android.gcm.GCMRegistrar;
  
  import android.content.Context;
  import android.content.Intent;
  import android.os.PowerManager;
  import android.provider.Settings.Secure;
  import android.util.Log;
  
  public class GCMIntenetService extends GCMBaseIntentService {
      private static  String GCM_SENDER_ID = "1111111111111";
  
      public GCMIntenetService() {
          super();
      }
  
      @Override
      protected void onRegistered(Context context, String registrationId) {
          Log.i(TAG, "Device registered: regId = " + registrationId);
          GCMRegistrar.setRegisteredOnServer(context, true);
      }
  
      @Override
      protected void onUnregistered(Context context, String registrationId) {
          Log.i(TAG, "Device unregistered");
          if (GCMRegistrar.isRegisteredOnServer(context)) {
              String regId = "";
              Log.i(TAG, "unregistering device (regId = " + regId + ")");
              GCMRegistrar.setRegisteredOnServer(context, false);
          } else {
              // This callback results from the call to unregister made on
              // ServerUtilities when the registration to the server failed.
              Log.i(TAG, "Ignoring unregister callback");
          }
      }
  
      @Override
      protected void onError(Context context, String errorId) {
          // push error processing
      }
  
      @Override
      protected void onMessage(Context arg0, Intent arg1) {
          Log.i(TAG, "Received message");
          Log.i(TAG, "EXTRAS" + arg1.getExtras());
          // String message = getString(R.string.gcm_message);
          generateNotification(arg0,
                  arg1.getStringExtra("Please download our new updates"));
          // notifies user about message
  
      }
  
      private void generateNotification(Context arg0, String stringExtra) {
          // TODO Auto-generated method stub
  
      }
  
      public static void registerInGCMService(Context context) {
  
          GCM_SENDER_ID = Secure.getString(context.getContentResolver(),
                  Secure.ANDROID_ID);
  
  
          if (!checkIsGCMServiceAvailable(context)) {
              return;
          }
          final String regId = GCMRegistrar.getRegistrationId(context);
          if (regId.equals("")) {
              try {
                  GCMRegistrar.register(context, GCM_SENDER_ID);
              } catch (Exception ex) {
              }
          } else {
              // Already registered
          }
  
      }
  
      public static boolean checkIsGCMServiceAvailable(Context context) {
          try {
              GCMRegistrar.checkDevice(context);
              GCMRegistrar.checkManifest(context);
              return true;
          } catch (Throwable th) {
              return false;
          }
      }
  
  }
  </code></pre>
  
  <p>I had attached my log cat message</p>
  
  <p>2- what about  status in my Google API account </p>
  
  <p>Service                                         Status
  Google Cloud Messaging for Android      No known issues</p>
  
  <p><img src="https://i.stack.imgur.com/llnOQ.jpg" alt="Log cat"></p>
  
  <p><img src="https://i.stack.imgur.com/7Nhik.jpg" alt="emulator message"></p>