Custom GcmListenerService not working <p>This is my manifest file </p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" package="be.customapp" &gt; &lt;uses-permission android:name="android.permission.INTERNET" /&gt; &lt;!-- GCM: keep device awake while receiving a notification --&gt; &lt;uses-permission android:name="android.permission.WAKE_LOCK"/&gt; &lt;!-- GCM: receive push notifications --&gt; &lt;permission android:name="be.customapp.permission.C2D_MESSAGE" android:protectionLevel="signature" /&gt; &lt;uses-permission android:name="be.customapp.permission.C2D_MESSAGE" /&gt; &lt;uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/&gt; &lt;application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" &gt; &lt;!-- Meta data --&gt; &lt;meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/google_maps_key"/&gt; &lt;!-- Activities --&gt; &lt;activity android:name=".ui.activities.MainActivity" android:label="@string/app_name" android:launchMode="singleTop" android:screenOrientation="portrait"&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;!-- Services --&gt; &lt;service android:exported="false" android:name=".services.gcm.MyGcmListenerService"&gt; &lt;intent-filter&gt; &lt;action android:name="com.google.android.c2dm.intent.RECEIVE" /&gt; &lt;/intent-filter&gt; &lt;/service&gt; &lt;service android:exported="false" android:name=".services.gcm.GcmRegisterService"/&gt; &lt;service android:name=".services.gcm.MyInstanceIDListenerService" android:exported="false"&gt; &lt;intent-filter&gt; &lt;action android:name="com.google.android.gms.iid.InstanceID"/&gt; &lt;/intent-filter&gt; &lt;/service&gt; &lt;!-- Broadcastreceivers --&gt; &lt;receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" &gt; &lt;intent-filter&gt; &lt;action android:name="com.google.android.c2dm.intent.REGISTRATION" /&gt; &lt;action android:name="com.google.android.c2dm.intent.RECEIVE" /&gt; &lt;category android:name="be.prior_it.evapp" /&gt; &lt;/intent-filter&gt; &lt;/receiver&gt; &lt;/application&gt; &lt;/manifest&gt; </code></pre> <p>And this is the service that gets/registers my registration id;</p> <pre><code>InstanceID instanceID = InstanceID.getInstance(this); String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); </code></pre> <p>MyGcmListenerService;</p> <pre><code>public class MyGcmListenerService extends GcmListenerService { @Override public void onMessageReceived(String from, Bundle data) { super.onMessageReceived(from, data); Log.i(Constants.LOG_TAG, "Got GCM message " + data.getString("message")); } } </code></pre> <p>The server uses PushJack and sends to the registration id's. I can see that the server can send the messages, I can get my registration id and register it with our server, but the onMessageReceived never gets called... I also made the google-services.json using the link on the website, so that should also be okay.</p> <p>Any or all ideas are welcome.</p>