1、(内部做了Android8.0适配)
下载源码里面的大图通知模块(NotifiSmallManager)导入你的项目

下载地址:https://wws.lanzoui.com/i62POq4twkb

2、判断并开启通知消息权限

boolean enabled = isNotificationEnabled();if (!enabled) {/*** 跳到通知栏设置界面* @param context*/Intent localIntent = new Intent();//直接跳转到应用通知设置的代码:if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {localIntent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");localIntent.putExtra("app_package", getPackageName());localIntent.putExtra("app_uid", getApplicationInfo().uid);} else if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {localIntent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);localIntent.addCategory(Intent.CATEGORY_DEFAULT);localIntent.setData(Uri.parse("package:" + getPackageName()));} else {//4.4以下没有从app跳转到应用通知设置页面的Action,可考虑跳转到应用详情页面,localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);if (Build.VERSION.SDK_INT >= 9) {localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");localIntent.setData(Uri.fromParts("package", getPackageName(), null));} else if (Build.VERSION.SDK_INT <= 8) {localIntent.setAction(Intent.ACTION_VIEW);localIntent.setClassName("com.android.settings", "com.android.setting.InstalledAppDetails");localIntent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());}}startActivity(localIntent);}

这是检测通知消息权限的方法:isNotificationEnabled

/*** 获取通知权限*/@TargetApi(Build.VERSION_CODES.KITKAT)private boolean isNotificationEnabled() {String CHECK_OP_NO_THROW = "checkOpNoThrow";String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";AppOpsManager mAppOps = (AppOpsManager) getSystemService(APP_OPS_SERVICE);ApplicationInfo appInfo = getApplicationInfo();String pkg = getApplicationContext().getPackageName();int uid = appInfo.uid;Class appOpsClass = null;try {appOpsClass = Class.forName(AppOpsManager.class.getName());Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE,String.class);Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);int value = (Integer) opPostNotificationValue.get(Integer.class);return ((Integer) checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg) == AppOpsManager.MODE_ALLOWED);} catch (Exception e) {e.printStackTrace();}return false;}

3、创建管理类对象

private NotifiSmallManager smallManager;
smallManager = new NotifiSmallManager(this);

4、调用添加普通通知栏消息的方法:

//注意,最后一个参数是Intent,就是当通知栏消息被点击后会跳转到这个intent,如果不想让跳转窗口就传入new Intent()即可
smallManager.createBasicNotify(1, R.mipmap.ic_launcher, "通知标题", "通知内容",new Intent(MainActivity.this,MainActivity.class));

5、调用添加大图通知栏消息的方法:

//这里是先获取一张大图,用于通知栏展示用的
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.banner);
//这里添加大图通知栏消息
smallManager.createBigPicNotify(2, R.mipmap.ic_launcher, "大图通知标题", "大图通知内容", bitmap,new Intent(MainActivity.this,MainActivity.class));

Android添加大图通知栏消息相关推荐

  1. Android 通知栏消息

    通知栏消息是Android的一个最成功的发明,的确给用户带来很好的体验. 主要用到的类有NotificationManager.是用来管理提醒的. 还有PendingIntent用来指定点击后跳转的. ...

  2. 一文彻底玩转Android通知栏消息通知

    消息渠道 Google为什么要引入消息渠道这个,因为在之前版本的Android通知管理中,通知消息要么全部接收,要么全部屏蔽,然而消息渠道改变了这一特点. 就是每条通知都要属于一个对应的渠道.每个Ap ...

  3. Android 桌面图标添加未读消息角标APP角标最佳实践

    Android 桌面图标添加未读消息角标APP角标最佳实践 本项目的完整演示代码 https://github.com/benchegnzhou/AndroidDevelomentArtDemo 最近 ...

  4. android 华为推送通知中心,华为推送通知栏消息功能及 intent 说明文档

    华为推送分为透传推送和通知栏推送两种方式. 两种方式的区别如下: 透传推送:华为推送服务会将原始 json 数据发给目标客户端,客户端内嵌的融云 SDK 接受到该 json 数据后,会进行解析并在通知 ...

  5. 华为android系统通知栏怎么关闭,华为通知栏怎么设置?三招帮你禁止华为通知栏消息...

    原标题:华为通知栏怎么设置?三招帮你禁止华为通知栏消息 不管是华为.小米还是苹果三星等智能手机,都会有同一个困扰:每天都会接收到不少的推送栏消息,除了系统通知之外,还有各种各样的第三方应用推送消息,十 ...

  6. android 8.0的imei简书,Android 8.0通知栏渠道,渠道组的适配和使用

    Android 8.0通知栏渠道,渠道组的适配和使用 推广一下 博客 android 8.0开始引入了渠道组的概念,app可以对通知类型进行细分,比如划分为:广告消息,私聊消息,群聊消息等. 但其实到 ...

  7. Android发送通知——通知栏(Notification)

    Android发送通知--通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒.来自他人的通信信息或您应用中的其他实时信息.在发出一条通知后, ...

  8. android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序

    android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序   在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity, ...

  9. Android socket 编程 实现消息推送(二)

    上篇文章Android socket 编程 实现消息推送(一)讲到socket编程的消息推送原理,现在我们来看看基于Android客户机socket编程实现消息推送的过程. 根据消息推送的原理图,我们 ...

  10. android放微信@功能,Android仿微信语音消息的录制和播放功能

    一.简述 效果: 实现功能: 长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态生成录音文件,开始录音: 监听手指动作,规定区域.录音状态下手指划出规定区域取消录音,删 ...

最新文章

  1. 大神开发arXiv全新H5版,一步告别公式排版错误,手机也能轻松看文献
  2. 李沐在斯坦福开新课了!面向机器学习实战,课程全部免费,9月1日可报名
  3. DevExpress的PdfViewer添加工具栏实现PDF打开、预览、保存、打印
  4. android studio不能更新代码,解决Android Studio 和 Android SDK Manager 无法在线更新的问题....
  5. Clion配置Toolchains
  6. java能写驱动吗_使用纯java jdbc驱动程序实现数据库的连接
  7. [转]一个计算机专业学生几年的编程经验汇总
  8. 最流行6种微服务RPC技术,你一定要知道
  9. 创建表时参数PCTFREE和PCTUSED是什么意思?
  10. matlab傅里叶变换处理图像,MATLAB数字图像处理(1)基本操作和傅里叶变换
  11. win10 软路由_千元完美的家用低功耗软路由:J4125 迷你电脑GK41开箱体验!又是播放器,也是服务型AIO!...
  12. 三峡大学 计算机学院 刘洋,三峡大学科技学院2016年预科内升本专业分流结果公示...
  13. Lipschitz连续
  14. AOP之基于Schema配置总结与案例
  15. 曾经决心永不做游戏 但为何阿里巴巴的游戏之心一直死不了?
  16. 有意思的教程:July, 2018
  17. 明翰经验系列之人生经验与经典文案篇(持续更新)V1.1
  18. OpenCV算法加速的一些学习总结
  19. 区块链关键技术研究进展
  20. VoLTE的基本介绍

热门文章

  1. 国内6大常见免费数据采集器特点分析
  2. (伪)原创,采集工具应用
  3. 利用计算机进行导弹轨道计算,超级计算机为何被称为大国重器?可模拟核试验或测算弹道导弹轨迹!...
  4. 判断魔方阵c语言程序设计_魔方阵原理及十种解法(C语言)
  5. Java10-I/O
  6. 喜忧参半的电子烟 究竟是不是一个靠谱的创业机会?
  7. 内容页的链接设置seo技巧
  8. Html制作知识库管理系统,知识库管理系统(源码+数据)
  9. 在MonthCalendar控件中选中日期
  10. java摩托游戏_盘点那些JAVA游戏第3期