友盟推送註冊成功之後。但是收不到推送
注意:(還要寫service接收推送。然後還要定義通知欄。)官方文檔上都沒有真的垃圾。
<!-- 友盟推送service --> <service android:name=".service.YouMengPushIntentService" android:enabled="true" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE" android:process=":push" />
public class YouMengPushIntentService extends UmengMessageService { public void getNotification(Context context, String title, String msg) { LogUtil.e("YouMengPushIntentService", "getNotification"); NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); int id = (int) (System.currentTimeMillis() / 1000); // Intent intentClick = new Intent(this, NotificationClickReceiver.class); // intentClick.putExtra("title", title); // intentClick.putExtra("msg", msg); // intentClick.setAction("notification_clicked"); // intentClick.putExtra(NotificationClickReceiver.TYPE, 0); //0代表點擊 // PendingIntent pendingIntentClick = PendingIntent.getBroadcast(this, id, intentClick, PendingIntent.FLAG_ONE_SHOT); // // Intent intentCancel = new Intent(this, NotificationClickReceiver.class); // intentCancel.setAction("notification_cancelled"); // intentCancel.putExtra(NotificationClickReceiver.TYPE, 1); //1代表清除的監聽 // PendingIntent pendingIntentCancel = PendingIntent.getBroadcast(this, id, intentCancel, PendingIntent.FLAG_ONE_SHOT); if (Build.VERSION.SDK_INT >= 26) { //判斷8.0,若爲8.0型號的手機進行創下一下的通知欄 NotificationChannel channel = new NotificationChannel("channel_id", "channel_name", NotificationManager.IMPORTANCE_HIGH); if (manager != null) { manager.createNotificationChannel(channel); } Notification.Builder builder = new Notification.Builder(context, "channel_id"); builder.setSmallIcon(R.mipmap.ic_launcher) .setWhen(System.currentTimeMillis()) .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)) .setContentTitle(title) .setContentText(msg) .setAutoCancel(true); // .setContentIntent(pendingIntentClick) // .setDeleteIntent(pendingIntentCancel); manager.notify(id, builder.build()); } else { Notification.Builder builder = new Notification.Builder(context); builder.setSmallIcon(R.mipmap.ic_launcher) .setWhen(System.currentTimeMillis()) .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)) .setContentTitle(title) .setContentText(msg) .setAutoCancel(true); // .setContentIntent(pendingIntentClick) // .setDeleteIntent(pendingIntentCancel);; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { manager.notify(id, builder.build()); } } } @Override public void onMessage(Context context, Intent intent) { try { Intent data = new Intent(intent); // data.setClass(context, DialogActivity.class); // data.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//需爲Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否則無法啓動Activity。 // context.startActivity(data); //可以通過MESSAGE_BODY取得消息體 LogUtil.e("YouMengPushIntentService", "onMessage"); final String message = intent.getStringExtra("body"); if (TextUtils.isEmpty(message)) { return; } final UMessage msg = new UMessage(new JSONObject(message)); getNotification(context, msg.title, msg.text); } catch (Exception e) { e.printStackTrace(); } } }