美文网首页
Android通知栏显示通知简单使用

Android通知栏显示通知简单使用

作者: itkluo88 | 来源:发表于2018-05-16 15:07 被阅读844次

最近做直播,要求向关注者发通知,显示在通知栏, 记录下简单的使用。 并发现一个在魅族手机上奇葩的坑。。。

直接上代码:

private void notifyLiveStart(Activity context, PendingIntent intent, int id, String contentText, String tickerText) {

NotificationChannel channel =null;

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {

channel =new NotificationChannel("1",

                    "Channel1", NotificationManager.IMPORTANCE_DEFAULT);

            channel.enableLights(true); //是否在桌面icon右上角展示小红点

            channel.setLightColor(Color.RED); //小红点颜色

            channel.setShowBadge(true); //是否在久按桌面图标时显示此渠道的通知

        }

NotificationCompat.Builder build =new NotificationCompat.Builder(context, "default");

        build.setContentTitle("测试标题");//设置通知栏标题

        build.setContentText(contentText); //设置通知栏显示内容

        //build.setNumber(3); //设置通知集合的数量

        build.setTicker(tickerText); //通知首次出现在通知栏,带上升动画效果的

        build.setWhen(System.currentTimeMillis());//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间

        build.setPriority(Notification.PRIORITY_DEFAULT); //设置该通知优先级

        build.setAutoCancel(true);//设置这个标志当用户单击面板就可以让通知将自动取消

        build.setOngoing(false);//ture,设置他为一个正在进行的通知,通常是用来表示一个后台任务,以某种方式正在等待,如一个文件下载,同步操作

        build.setDefaults(Notification.DEFAULT_VIBRATE);//向通知添加声音、闪灯和振动效果

        build.setSmallIcon(R.drawable.app_logo);//设置通知小ICON

        build.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.app_logo));

        build.setContentIntent(intent); //设置通知栏点击意图

        Notification mNotification = build.build();

        notificationManager.notify(id, mNotification);

    }

public PendingIntent getContentIntent(Activity context, int id) {

Intent intent =new Intent(this, NoticeActivty.class);

    return PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

}

getContentIntent()方法为点击通知时执行的意图,这里跳转到一个activity。

现在开始弹出通知:

notifcationManage = (NoificationManager) getSystemService(NOTIFICATION_SERVICE);:

int id = (int) System.currentTimeMillis();

PendingIntent clickIntent = getContentIntent(MainActivity.this, id);

notifyLiveStart(MainActivity.this, clickIntent, id, "您关注的主播开播啦!", "有新的通知");

哈哈,就这么使用~~~ 

但坑来了, 当我用魅族pro6试怎么弹不出来~~

机型适配嘛,Android程序员懂得,网上一股搜索,也没下文。。。

后来无意发现问题出在传的通知内容“您关注的主播开播啦!”, 去掉感叹号就好了。。

魅族的, 不能有叹号啊,不能有叹号啊,不能有叹号啊。。。。。

捉鸡的,魅族系统bug!根据系统判断,替换掉感叹号:

if (SystemUtil.isMeizuFlymeOS(context)) {//魅族的, 不能有叹号啊,不能有叹号啊,不能有叹号啊https://bbs.meizu.cn/thread-6833068-1-1.html

    contentText = contentText.replace("!", ".");

    contentText = contentText.replace("!", "。");

}

SystemUtil自定义的工具类,用于判断当前手机系统,这在网上直接找就好了!

好了,这下解决!

不过遇到在华为p10弹不出通知,就不知道为什么了。。有知道的告诉我下

(这问题已解决,  请看解决在Android 8.0无法显示通知 - 简书)

相关文章

  • Android通知栏显示通知简单使用

    最近做直播,要求向关注者发通知,显示在通知栏, 记录下简单的使用。 并发现一个在魅族手机上奇葩的坑。。。 直接上代...

  • Android 通知栏适配

    Android 8.0以下及8.0以上通知栏创建, 开始创建: 下载开始,显示通知栏, 下载完成,更新通知栏, 下...

  • Android Notification(兼容 Android

    通知栏通知在Android APP中的使用极为频繁,比如短信通知,QQ,微信消息通知,App 更新进度转态显示,截...

  • Android Notificatin 通知

    通知的简单使用 1-通知渠道:android 8.0 必须设置通知渠道,否则通知不会显示。2-通知图标问题:and...

  • 关于Android8.0以上系统通知栏不显示的问题

    关于Android8.0以上系统通知栏不显示的问题 Android 8.0之前,Google爸爸在通知栏增加了N...

  • 通知撤回技术原理大揭秘。

    通知是指 Android 在应用界面之外显示的消息,发出通知后,通知先以图标的形式在状态栏中显示。用户可以在状态栏...

  • android学习之使用Notification

    通知栏是android中一个很常用的控件,其使用也非常简单

  • Android 通知栏使用

    不同版本通知栏的创建方式不尽相同,当前官方推荐使用 NotificationCompat 相关的API,兼容到An...

  • 关于Android的极光推送的消息栏

    Android 收到推送的消息的改变, 在收到通知的时候无法改变通知栏显示的时候i,一般通知在Android上只显...

  • Android技术点增长

    Android 我还可以相信你多少系列文章三之通知栏 说起通知栏,是一块各个应用的必争之地,不显示通知栏就意味着没...

网友评论

      本文标题:Android通知栏显示通知简单使用

      本文链接:https://www.haomeiwen.com/subject/ptkccxtx.html