欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android O的通知渠道适配

程序员文章站 2022-06-29 08:09:11
在 Android O 以后,Google引入了通知通道的概念,如果目标API大于 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);
    }