title: Cannot receive Parse push notifications on Android
body: <p>I am developing simple android app and very new to parse. I followed parse documentation in adding back-end functionalities. Parse CORE was an easy part but I can’t send push notifications from android device. But push-notifications are received when sent from parse dashboard.
  My Manifest file is as below:</p>
  
  <pre><code>    &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.WAKE_LOCK" /&gt;
          &lt;uses-permission android:name="android.permission.VIBRATE" /&gt;
          &lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&gt;
          &lt;uses-permission android:name="android.permission.GET_ACCOUNTS" /&gt;
          &lt;uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /&gt;
          &lt;uses-permission android:name="com.google.android.c2dm.permission.SEND" /&gt;
  
          &lt;!--
            IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
            to match your app's package name + ".permission.C2D_MESSAGE".
          --&gt;
          &lt;permission android:protectionLevel="signature"
              android:name="loaniistar.loaniistar.permission.C2D_MESSAGE" /&gt;
          &lt;uses-permission android:name="loaniistar.loaniistar.permission.C2D_MESSAGE" /&gt;
  
  &lt;service android:name="com.parse.PushService" /&gt;
          &lt;receiver android:name="com.parse.ParseBroadcastReceiver"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.BOOT_COMPLETED" /&gt;
                  &lt;action android:name="android.intent.action.USER_PRESENT" /&gt;
              &lt;/intent-filter&gt;
          &lt;/receiver&gt;
          &lt;receiver android:name="com.parse.ParsePushBroadcastReceiver"
              android:exported="false"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="com.parse.push.intent.RECEIVE" /&gt;
                  &lt;action android:name="com.parse.push.intent.DELETE" /&gt;
                  &lt;action android:name="com.parse.push.intent.OPEN" /&gt;
              &lt;/intent-filter&gt;
          &lt;/receiver&gt;
          &lt;receiver android:name="com.parse.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;!--
                    IMPORTANT: Change "com.parse.starter" to match your app's package name.
                  --&gt;
                  &lt;category android:name="loaniistar.loaniistar" /&gt;
              &lt;/intent-filter&gt;
          &lt;/receiver&gt;
  </code></pre>
  
  <p>Application Class:</p>
  
  <pre><code>public class MApplication extends Application {
  
      String applicationiId = "5npdddECsGdDk49OttttuHq6iZdZpddI0cHDsz";
      String clientKey = "SjF1BWamssstycthSjf2dddduhcuwW2VccccCCuFlE";
  
      public UserAccounts userAccount = null;
  
      @Override
      public void onCreate() {
          super.onCreate();
  
          Parse.enableLocalDatastore(this);
          ParseCrashReporting.enable(this);
          Parse.initialize(this, applicationiId, clientKey);
          PushService.startServiceIfRequired(this);
      }
  
  }
  </code></pre>
  
  <p>Subscribing for channel in an activity class:</p>
  
  <pre><code>ParsePush.subscribeInBackground("manager", new SaveCallback() {
                      @Override
                      public void done(ParseException e) {
                          if (e == null) {
  
                          }
                          else
                          {
                              btnLoginEnable();
                          }
                      }
                  });
  </code></pre>
  
  <p>Sending Push Notification in another activity class:</p>
  
  <pre><code> // Sending Push
                      ParsePush push = new ParsePush();
                      push.setChannel("manager");
                      push.setMessage(m.getMessage().substring(0, (int) m.getMessage().length() / 3));
                      //push.sendInBackground();
                      push.sendInBackground(new SendCallback() {
                          @Override
                          public void done(ParseException e) {
                              if(e == null)
                              {
                                  Toast.makeText(getActivity(), "Notification sent", Toast.LENGTH_SHORT).show();
                              }
                              else {
                                  Toast.makeText(getActivity(), "Notification Not sent", Toast.LENGTH_SHORT).show();
                              }
                          }
                      });
  </code></pre>
  
  <p>Row is added in “Installation” class and GCMSenderId is empty!! Is this the issue?
  Please help me out why I can’t receive notifications when sent from my android device?
  Libs used:
  Bolts-android-1.1.4.jar
  Parse-1.8.2.jar
  ParseCrashReporting-1.8.2.jar</p>