友盟推送註冊成功但是收不到推送

友盟推送註冊成功之後。但是收不到推送

注意:(還要寫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();
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章