1 package cc.minsnail.receiver;
3 import android.annotation.TargetApi;
4 import android.app.Notification;
5 import android.app.NotificationManager;
6 import android.app.PendingIntent;
7 import android.content.BroadcastReceiver;
8 import android.content.Context;
9 import android.content.Intent;
10 import android.os.Build;
11 import android.util.Log;
13 import cc.minsnail.activity.ChatActivity;
14 import cc.minsnail.beans.YgMessage;
15 import cc.minsnail.config.Config;
16 import cc.minsnail.smackclient.R;
19 * Created by yg on 2016/10/8.
21 public class MsgReceiver extends BroadcastReceiver {
22 private static final String TAG = "MsgRecerver";
24 @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
26 public void onReceive(Context context, Intent intent) {
27 if (intent.getAction().equals(TAG)) {
28 Log.i(TAG, "received message");
29 YgMessage ygMessage = intent.getParcelableExtra("msg");
30 NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
31 Notification.Builder builder = new Notification.Builder(context);
32 Intent i = new Intent(context, ChatActivity.class);
33 i.putExtra(Config.KEY_FROM_JID, ygMessage.getFrom());
34 i.putExtra(Config.KEY_FROM_NAME, ygMessage.getFrom().split("@")[0]);
35 i.putExtra("msg", ygMessage);
36 PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);
37 builder.setContentTitle(ygMessage.getFrom().split("@")[0])
38 .setContentText("新消息")
39 .setTicker(ygMessage.getFrom())
40 .setSmallIcon(R.mipmap.ic_launcher)
41 .setWhen(System.currentTimeMillis())
43 builder.setContentIntent(pi);
44 notificationManager.notify((int) (Math.random() * 100), builder.build());