欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Parse中的Push Notification在Android中的应用

程序员文章站 2022-05-01 18:09:54
...

1、下载Parse的SDK

 

可以到https://www.parse.com/downloads/android/Parse/latest进行下载,或者下载本文附件中的Parse-1.3.0.jar。

 

2、将SDK中的jar包导入项目的libs目录

 

3、Activity中的配置

 

在Activity中导入下面几个包:

 

import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseInstallation;
import com.parse.PushService;

 

在onCreate中调用Parse.initialize:

 

public void onCreate() { 
    Parse.initialize(this, "TPPUafHVnUnJ6g91v5E0qxRsVEoRRyrj0QCaUzMA", "XGD13UzadLy6espUxPkqkt9Zntiyk2MXeA7qVAxS"); 
}

 

设置处理推送消息的Activity:

 

PushService.setDefaultPushCallback(this, MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();

 

4、权限配置

 

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />

 

5、在MainActivity的onCreate中加入以下代码

 

ParseAnalytics.trackAppOpened(getIntent());

 

6、在AndroidManifest.xml的</application>前加入以下代码

 

<service android:name="com.parse.PushService" />
<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>

 

以上就是使用Parse中Push Notification的最基本的配置。

 

接下来,举两个简单的例子:发送消息和接收消息。

 

1、发送消息

 

Button sendBtn = (Button)findViewById(R.id.button1);
sendBtn.setOnClickListener(new OnClickListener(){
	@Override
	public void onClick(View arg0) {
		try {
			JSONObject data;
			EditText et = (EditText)findViewById(R.id.editText1);					
			ParsePush push = new ParsePush();
			String msg = "{\"action\": \"com.example.demo.UPDATE_STATUS\", \"alert\": " + et.getText().toString() + "}";
			data = new JSONObject(msg);
			push.setChannel("Giants");
			push.setData(data);					
			push.sendInBackground();	
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}	
});

 

2、接收消息

 

1)实现一个BroadcastReceiver类

 

package com.example.demo;

import java.util.Iterator;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences.Editor;
import android.util.Log;

public class MyCustomReceiver extends BroadcastReceiver {
	private static final String TAG = "MyCustomReceiver";

	@Override
	public void onReceive(Context context, Intent intent) {
		try {
			String action = intent.getAction();
			String channel = intent.getExtras().getString("com.parse.Channel");
			JSONObject json = new JSONObject(intent.getExtras().getString(
					"com.parse.Data"));
			Log.i(TAG, "got action " + action + " on channel " + channel
					+ " with:");
			Iterator itr = json.keys();
			while (itr.hasNext()) {
				String key = (String) itr.next();
				if (key.equals("alert")) {
					Log.i(TAG, "..." + key + " => " + json.getString(key));
					Editor sharedata = context.getSharedPreferences("data", 0)
							.edit();
					sharedata.putString("msg", json.getString(key));
					sharedata.commit();
				}
			}
		} catch (JSONException e) {
			Log.i(TAG, "JSONException: " + e.getMessage());
		}
	}
}

 

2)注册MyCustomReceiver

 

<receiver android:name="com.example.demo.MyCustomReceiver" >
    <intent-filter>
        <action android:name="com.example.demo.UPDATE_STATUS" />
    </intent-filter>
</receiver>

 

3)在Activity中订阅Giants通道的消息

 

PushService.subscribe(this, "Giants", MainActivity.class);

 

还有很多详细的细节,请参考官网