一、準備
關于Parse的介紹,參考本文文末的連結(每月100萬條免費Push)。首先你需要建立一個Parse賬戶,然後建立一個應用,最後下載下傳SDK,解壓并将jar拷貝到libs目錄即可。
二、 在你Application類的onCreate方法中調用Parse.initialize,如下:
import android.app.Application;
import com.parse.Parse;
public class MyApplication extends Application {
public void onCreate() {
Parse.initialize(this, "your application id", "your client key");
}
}
登入并建立好應用後,點選網頁頂部的Quickstart就能進入本文的英文版本,并且已經給你填充好了applicationid和key,直接複制到程式裡面即可。
三、AndroidMainfest.xml設定
這裡設定權限、廣播、Service等。
<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" />
<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>
注意别加錯地方。
四、訂閱Push通知
PushService.subscribe(this, "", YourActivity.class);
PushService.setDefaultPushCallback(this, YourActivity.class);
注意:
a)、最後一個參數YourActivity.class,是指點選工作列推送消息時接收處理的Activity,可以從getIntent中取到推送資料,例如 :
com.parse.Channel:null
com.parse.Data:{"alert":"test","push_hash":"098f6bcd4621d373cade4e832627b4f6"}
b)、這段代碼也可以放到Application裡面,放在Parse.initialize後面。
c)、以廣播的形式接收JSON資料:
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.d(TAG, "got action " + action + " on channel " + channel + " with:");
Iterator itr = json.keys();
while (itr.hasNext()) {
String key = (String) itr.next();
Log.d(TAG, "..." + key + " => " + json.getString(key));
}
} catch (JSONException e) {
Log.d(TAG, "JSONException: " + e.getMessage());
}
}
}
五、其他
a). 測試過程中發現,按照快速開發文檔,最後點Send Temp Push沒用,還以為失敗了,直接進入應用背景的Push Notifications,點選Send a push,然後就可以發送消息了。發送成功一次後,後面都很快了。
b). 注意要在背景Settings的Push notifications中啟用Client push,設定為ON即可。
c). Parse Push支援IOS和Android的通知服務。
d). 1.3後好像要加以下代碼:(2013-06-12更新)
ParseInstallation.getCurrentInstallation().saveInBackground();
六、相關文章
<a href="http://springapple.diandian.com/post/2011-12-15/12465093">Parse 是一個比較完善的專為您的IOS和Android應用而設計的後端平台</a>