`
jsntghf
  • 浏览: 2532941 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Parse中的Push Notification在Android中的应用

阅读更多

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);

 

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

分享到:
评论

相关推荐

    Android Push Notification客户端源码包

    在Android开发中,Push Notification是一种重要的技术,它允许应用程序在后台接收来自服务器的消息,并在用户的通知栏中显示这些消息,即使应用并未运行。这个"Android Push Notification客户端源码包"显然是一个...

    Android代码-一个很好用的通知栏推送(Convert JSON to Android Notification)

    json2notification Contributors.. ...Convert JSON to Android Notification. This is very useful for push notification (GCM). ...Integration of Parse push notification public SimplePa

    push-notification-parse-android:使用 Parse 推送通知示例

    在应用的主Activity或Application类中,使用`Parse.initialize()`方法初始化Parse SDK,传入`Application ID`和`Client Key`: ```java Parse.initialize(new Parse.Configuration.Builder(this) .applicationId...

    c# 手机推送案例(ios和android)

    在C#中实现手机推送功能,通常涉及到与iOS和Android平台的交互,因为这两个系统有着不同的推送服务。本文将深入探讨如何使用C#进行iOS(通过Apple Push Notification Service,APNS)和Android(通过Google Firebase...

    推送通知.zip

    远程推送通知通常由服务器端通过特定的推送服务来实现,如Apple的APNs(Apple Push Notification service)和Google的Firebase Cloud Messaging (FCM)。 推送通知的基本工作流程包括以下几个步骤: 1. **注册推送...

    手机天气预报系统.zip

    2. **JSON解析**:大多数天气API返回的数据格式是JSON,因此开发者需要熟悉JSON解析技术,例如在Java中使用Gson库,在Python中使用json模块,或者在JavaScript中使用JSON.parse()函数来解析数据。 3. **地理位置...

    Fashion-Leader:时尚领袖

    push.setMessage("The is the push message of push notification".); push.sendInBackground(); Prepraraton将推Android Parse.initialize(this, "---", "---); ParseInstallation.getCurrentInstallation()....

    PushNotification

    在Java中,实现PushNotification通常涉及到使用各种框架和服务,如Firebase Cloud Messaging (FCM)、Apple Push Notification Service (APNs) 对于Android和iOS平台,以及第三方服务如OneSignal、Parse等。...

    安卓推送方案及比较

    最近新出的一种是APNS,这个也不需要自己架设服务器(可以查看http://www.push-notification.mobi/),很简单,自己不用开发服务端。不过很少有人去用,不是很稳定 主要有以下特点: •快速集成:提供一种比C2DM更加...

Global site tag (gtag.js) - Google Analytics