Android O的通知渠道适配

 在 Android O 以后,Google引入了通知通道的概念,如果目标API大于 Android O ,不直指定通知渠道是不能发送通知的。

这里放一个我写好的通知方法,大家可以适当的改改再用,*当然亦可以直接用*

 
    /**
     * 通过通知渠道发送通知 Android O 新增API
     * 其他的还和以前一样
     *
     * @param channelID 渠道ID
     * @param channelName 渠道名字
     * @param subText 小标题
     * @param title 大标题
     * @param text 内容
     */
    @TargetApi(Build.VERSION_CODES.O)
    public void sendNotification(String channelID, String channelName, String subText, String title, String text) {

        //创建通道管理器
        NotificationChannel channel = new NotificationChannel(channelID, channelName, NotificationManager.IMPORTANCE_HIGH);

        NotificationManager manager;
        manager = (NotificationManager) this.getSystemService(getApplicationContext().NOTIFICATION_SERVICE);
        manager.createNotificationChannel(channel);

        //构建通知
        Notification.Builder builder = new Notification.Builder(getApplicationContext());
        //设置小图标
        builder.setSmallIcon(R.mipmap.ic_launcher);
        //设置通知 标题,内容,小标题
        builder.setContentTitle(title);
        builder.setContentText(text);
        builder.setSubText(subText);
        //设置通知颜色
        builder.setColor(Color.parseColor("#E91E63"));
        //设置创建时间
        builder.setWhen(System.currentTimeMillis());
        //创建通知时指定channelID
        builder.setChannelId(channelID);

        Intent resultIntent = new Intent(this, ClipActivity.class);
        PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(resultPendingIntent);

        //构建一个通知,最后通知管理器 发送
        Notification notification = builder.build();
        manager.notify(1, notification);
    }

 

你可能感兴趣的:(Android O的通知渠道适配)