package com.roboo.like.google.receiver;
import com.roboo.like.google.JPushActivity;
import com.roboo.like.google.R;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import cn.jpush.android.api.JPushInterface;
public class JPushReceiver extends BroadcastReceiver
{
private static final String TAG = "PushReceiver";
private Context mContext;
public void onReceive(final Context context, Intent intent)
{
mContext = context;
Bundle bundle = intent.getExtras();
Log.d(TAG, "onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle));
if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction()))
{
String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "接收Registration Id : " + regId);
// send the Registration Id to your server...
}
else if (JPushInterface.ACTION_UNREGISTER.equals(intent.getAction()))
{
String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "接收UnRegistration Id : " + regId);
// send the UnRegistration Id to your server...
}
else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction()))
{
Log.d(TAG, "接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE));
}
else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction()))
{
Log.d(TAG, "接收到推送下来的通知");
int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
Log.d(TAG, "接收到推送下来的通知的ID: " + notifactionId);
}
else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction()))
{
Log.d(TAG, "用户点击打开了通知");
System.out.println("bundle = " + bundle.toString());
System.out.println("printBundle = " + printBundle(bundle));
String extraString = bundle.getString(JPushInterface.EXTRA_EXTRA);
// 打开自定义的Activity
if (!TextUtils.isEmpty(extraString))
{
if ("{}".equals(extraString))
{
extraString = bundle.getString(JPushInterface.EXTRA_ALERT);
}
if (!TextUtils.isEmpty(extraString))
{
JPushActivity.actionJPush(context, extraString);
Toast.makeText(context, extraString, Toast.LENGTH_SHORT).show();
}
}
}
else
{
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}
}
// 打印所有的 intent extra 数据
private static String printBundle(Bundle bundle)
{
StringBuilder sb = new StringBuilder();
for (String key : bundle.keySet())
{
if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID))
{
sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
}
else
{
sb.append("\nkey:" + key + ", value:" + bundle.getString(key));
}
}
return sb.toString();
}
}