Android 踩坑记2---------Android8.0系统通知创建坑

记上一篇文章写了下载逻辑后,产品要求下载后需要有通知栏显示下载进度条,其他手机能正常显示,8.0又继续在作怪,无法展示进度条,分析发现,原来8.0的通知栏不能像之前那样通过NotificationCompat.Builder 来创建,还需要设置NotificationChannel,

具体方式如下

1、首先一样是要判断版本号

mNotifyManager =
                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
        mBuilder = new NotificationCompat.Builder(mContext, null);
        if (Build.VERSION.SDK_INT >= 26) {
            String channelcontent = WalleChannelReader.getChannel(mContext);//获取渠道名称
            NotificationChannel channel = new NotificationChannel("channel_id","channel_name",  NotificationManager.IMPORTANCE_HIGH);
            channel.setDescription("下载");
            channel.enableLights(false);
            channel.enableVibration(false);
            channel.setVibrationPattern(new long[]{0});
//            channel.importance = NotificationManager.IMPORTANCE_LOW //设置为low, 通知栏不会有声音
            mNotifyManager.createNotificationChannel(channel);
            mBuilder.setChannelId("1");
        }

然后再按照正常逻辑走就可以了。

这里有两个坑需要说下,第一是NotificationManager.IMPORTANCE_HIGH  如果设置为NotificationManager.IMPORTANCE_LOW

会出现下载进度条不正常的问题。

第二,如果不加这个channel.setVibrationPattern(new long[]{0});会出现某些手机产生进度条的时候出现震动的问题,小米8不会出现,但是华为p20则会出现

android 开发不易,且行且珍惜!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值