package edu.hebtu.movingcampus.subjects;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.baidu.android.pushservice.PushConstants;
import edu.hebtu.movingcampus.activity.MainActivity;
import edu.hebtu.movingcampus.activity.Show_Score;
import edu.hebtu.movingcampus.utils.LogUtil;
public class PushMessageReceiver extends BroadcastReceiver {
/** TAG to Log */
public static final String TAG = PushMessageReceiver.class.getSimpleName();
AlertDialog.Builder builder;
/**
* @param context
* Context
* @param intent
* 接收的intent
*/
@Override
public void onReceive(final Context context, Intent intent) {
LogUtil.d(TAG, ">>> Receive intent: \r\n" + intent);
//获取消息的自定义内容
if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {
//获取消息内容
String message = intent.getExtras().getString(
PushConstants.EXTRA_PUSH_MESSAGE_STRING);
//消息的用户自定义内容读取方式
LogUtil.i(TAG, "onMessage: " + message);
//自定义内容的json串
String customData = intent.getStringExtra(PushConstants.EXTRA_EXTRA);
LogUtil.d(TAG, "EXTRA_EXTRA = " + customData);
} else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) {
//处理绑定等方法的返回数据
//PushManager.startWork()的返回值通过PushConstants.METHOD_BIND得到
//获取方法
final String method = intent
.getStringExtra(PushConstants.EXTRA_METHOD);
//方法返回错误码。若绑定返回错误(非0),则应用将不能正常接收消息。
//绑定失败的原因有多种,如网络原因,或access token过期。
//请不要在出错时进行简单的startWork调用,这有可能导致死循环。
//可以通过限制重试次数,或者在其他时机重新调用来解决。
int errorCode = intent
.getIntExtra(PushConstants.EXTRA_ERROR_CODE,
PushConstants.ERROR_SUCCESS);
String content = "";
if (intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT) != null) {
//返回内容
content = new String(
intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT));
}
//可选。通知用户点击事件处理
} else if (intent.getAction().equals(
PushConstants.ACTION_RECEIVER_NOTIFICATION_CLICK)) {
LogUtil.d(TAG, "intent=" + intent.toUri(0));
//自定义内容的json串
String customData = intent.getStringExtra(PushConstants.EXTRA_EXTRA);
LogUtil.d(TAG, "EXTRA_EXTRA = " + customData);
// if (customData == null || "".equals(customData)) {
// return;
// }
String title = intent
.getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE);
String []titlesplit = title.split("-");
if(titlesplit!=null&&titlesplit.length==2)
intent.putExtra(PushConstants.EXTRA_NOTIFICATION_TITLE, titlesplit[1]);
Intent aIntent = new Intent();
aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//默认
aIntent.setClass(context, MainActivity.class);
//TODO
if(titlesplit!=null&&titlesplit.length==2)
if (titlesplit[0].equals("score")) {
aIntent.setClass(context, Show_Score.class);
}
aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_TITLE, title);
String content = intent
.getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT);
// 向消息详细页发送内容
aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT, content);
context.startActivity(aIntent);
}
}
}