友盟推送注册成功但是收不到推送
友盟推送注册成功之后。但是收不到推送
注意:(还要写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(); } } }