How to receive parse push notifiactions on an android device using parse.com

前端 未结 4 2098
别那么骄傲
别那么骄傲 2021-01-06 03:38

How to intent from parse push notification. i f anybody implemented parse push please help.

Parse.initialize(Splash.this,\"id\",\"id\");
ParseInstallation.ge         


        
相关标签:
4条回答
  • 2021-01-06 04:28

    You can download complete code from here

    Add Google play service lib in dependency

    Initialize Parse in Application Class

       Parse.initialize(this, getResources().getString(R.string.applicationid), getResources().getString(R.string.clientkey));
    
    
        ParsePush.subscribeInBackground("", new SaveCallback() {
            @Override
            public void done(ParseException e) {
                if (e == null) {
    
                    Log.d("com.parse.push", "successfully subscribed to the broadcast channel.");
                } else {
                    Log.e("com.parse.push", "failed to subscribe for push", e);
                }
            }
        });
    

    Add Following Permissions in AndroidMainifest.xml

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    
    <!--Change with your package name-->
    <permission android:name="com.nkdroid.android.pushnotification.permission.C2D_MESSAGE" android:protectionLevel="signature" />
    <!--Change with your package name-->
    <uses-permission android:name="com.nkdroid.android.pushnotification.permission.C2D_MESSAGE" />
    

    Add following things also

        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
    
                <!--Change with your package name-->
                <category android:name="com.nkdroid.android.pushnotification" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.ParsePushBroadcastReceiver" android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
    
        <!-- add project number of google console project-->
        <meta-data android:name="com.parse.push.gcm_sender_id" android:value="@string/sender_id" />
    
        <!-- replace icon with your push icon identifier -->
        <meta-data android:name="com.parse.push.notification_icon" android:resource="@mipmap/ic_launcher" />
    
    0 讨论(0)
  • 2021-01-06 04:30

    Use like this :

      public class Application extends android.app.Application {
    
      public Application() {
      }
    
      @Override
      public void onCreate() {
        super.onCreate();
        Parse.initialize(this, "YOUR_APP_ID", "YOUR_CLIENT_KEY");
    
        PushService.setDefaultPushCallback(this, MainActivity.class);
      }
    }
    

    //MainActivity.java - Activity you need to open when the notification is clicked.

    In your Manifest file add this application.

    <application    android:name="com.parse.tutorials.pushnotifications.Application"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.parse.tutorials.pushnotifications.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity> </application>
    

    And add this line in your MainActivity class which you need to open when the notification is clicked.

    Bundle mBundle = getIntent().getExtras();
    if (mBundle != null) {
        String mData = mBundle.getString("com.parse.Data");
        System.out.println("DATA : xxxxx : " + mData);
    }
    
    0 讨论(0)
  • 2021-01-06 04:32

    You have to write a parse broadcast receiver in order to receive notification.. Write in your manifest

      <receiver
            android:name="com.example.package.ParseBroadcastReceiver"
            android:exported="false"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.example.package.MESSAGE" />
            </intent-filter>
        </receiver>
    

    then define a broadcast receiver

    public class ParseBroadcastReceiver extends BroadcastReceiver{
    
    public static final String ACTION                       =   "com.example.package.MESSAGE";
    public static final String PARSE_EXTRA_DATA_KEY         =   "com.parse.Data";
    public static final String PARSE_JSON_CHANNEL_KEY       =   "com.parse.Channel";
    
    @Override
    public void onReceive(Context context, Intent intent) {
    
         String action = intent.getAction();
            String channel = intent.getExtras().getString(PARSE_JSON_CHANNEL_KEY);
            JSONObject json = new JSONObject(intent.getExtras().getString(PARSE_EXTRA_DATA_KEY));
    
        }
    

    Now this json object will contain the data that you have send from parse.. For instance if you have to send notification using javascript api

       Parse.Push.send({where: query, // Set our Installation query
                    data: {                   
                        triggerKey:triggerValue, 
                        objectType:"android",
                        action:"com.example.package.MESSAGE"
                    }
                  },{
                  success: function() {
                    // Push was successful
    
                  },
                  error: function(error) {
                    // Handle error
    
                  }
                });
    

    Note that in your push notification you have to mention the "action" key and it should be same as the one you have mentioned in your broadcast receiver intent filter.

    0 讨论(0)
  • 2021-01-06 04:36

    Try below code in your activity:

        Parse.initialize(this, Constants.PARSE_APPLICATION_ID,
                Constants.PARSE_CLIENT_ID);
    
    
        ParseUser.enableAutomaticUser();
        ParseACL defaultACL = new ParseACL();
    
        // If you would like all objects to be private by default, remove this line.
        defaultACL.setPublicReadAccess(true);
    
        ParseACL.setDefaultACL(defaultACL, true);
        // To track statistics around application
        ParseAnalytics.trackAppOpened(getIntent());
    
        // inform the Parse Cloud that it is ready for notifications
        PushService.setDefaultPushCallback(this, TestActivity.class);
        try {
            Bundle b = getIntent().getExtras(); 
            JSONObject jsonObject = new JSONObject(b.getString("com.parse.Data"));
            Toast.makeText(getApplicationContext(), "" + jsonObject.getString("alert"), Toast.LENGTH_LONG).show();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    0 讨论(0)
提交回复
热议问题