转载自https://blog.csdn.net/rocrocflying/article/details/78333256?locationNum=8&fps=1

和 https://blog.csdn.net/weixin_30512027/article/details/80859934

没有取得作者授权,如有不便,请联系我删除。

很多人或系统会关闭消息通知权限来组织手机天天就知道“叮咚叮咚”地响,但是开发者也没有办法,牛逼的大佬都是大不了自己写一个,像我这样菜,只能恳求用户打开通知权限了。

首先要判断当前App的通知是否已经打开了:

NotificationManagerCompat notification = NotificationManagerCompat.from(this);

boolean isEnabled = notification.areNotificationsEnabled();

最后返回一个boolean值,true表示权限已经打开,false未打开。接下来就是,当未打开权限的情况下,怎么跳转到设置界面引导用户打开通知:

if (!isEnabled) {

//未打开通知

AlertDialog alertDialog = new AlertDialog.Builder(this)

.setTitle("提示")

.setMessage("请在“通知”中打开通知权限")

.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.cancel();

}

})

.setPositiveButton("去设置", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.cancel();

Intent intent = new Intent();

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

intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");

intent.putExtra("android.provider.extra.APP_PACKAGE", LoginActivity.this.getPackageName());

} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //5.0

intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");

intent.putExtra("app_package", LoginActivity.this.getPackageName());

intent.putExtra("app_uid", LoginActivity.this.getApplicationInfo().uid);

startActivity(intent);

} else if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { //4.4

intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);

intent.addCategory(Intent.CATEGORY_DEFAULT);

intent.setData(Uri.parse("package:" + LoginActivity.this.getPackageName()));

} else if (Build.VERSION.SDK_INT >= 15) {

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");

intent.setData(Uri.fromParts("package", LoginActivity.this.getPackageName(), null));

}

startActivity(intent);

}

})

.create();

alertDialog.show();

alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(Color.BLACK);

alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(Color.BLACK);

}

这样就可以跳转到设置界面了。

android 通知权限设置在哪,Android 打开消息通知权限相关推荐

  1. android 修改应用权限设置在哪里,Android在应用设置里关闭权限,返回生命周期处理...

    问题 在处理6.0运行时权限时,很多人都忽略了这样一个问题: 在一个App应用里,如果已经允许了一个权限比如(读取通讯权限),此刻去调用相机,弹出权限申请对话框,此刻点击拒绝,然后经过处理后弹出去设置 ...

  2. Android开发短信拦截与读取,消息通知Notification

    截获系统广播,读取消息,若联系人存在于通信录中,则让消息继续传播:若属于陌生号码,则中断消息,同时把信息显示在自己的程序中. 拦截器代码如下: public class SMSInterceptRec ...

  3. android 圆形图片设置蒙层,Android引导蒙层,安卓新手引导图,引导图层,支持椭圆,圆形,矩形多种形状,一行代码快速搞定-Go语言中文社区...

    新手引导视图,初次打开页面时显示. 支持圆形,椭圆,矩形等多种图形 提示部分支持图片和文字提示 先看效果图 使用步骤. 使用起来特别简单,只需要把GuideView这个类复制到你的项目中就可以了 pa ...

  4. Android之ScrollView设置了高度(android:layout_height=“match_parent“)但里面的组件不能充满问题

    1 问题 写了ScrollView控件,设置了高度(android:layout_height="match_parent"),但是里面的组件不能填充它,感觉就像ScrollVie ...

  5. android手机可以设置屏幕锁定,Android手机屏幕锁定设置方法(九个点图案)

    这是三星S5368手机屏幕锁的示例 随着三星S5368手机系统的功能越来越完善,性能越来越强. 越来越多的三星S5368用户喜欢在三星S5368手机中添加一些重要信息甚至是隐私,但是这种方式可能会被其 ...

  6. win7访问不了服务器共享文件夹权限设置,win7系统开启共享文件夹访问权限的操作方法...

    很多小伙伴都遇到过对win7系统开启共享文件夹访问权限进行设置的困惑吧,一些朋友看过网上对win7系统开启共享文件夹访问权限设置的零散处理方法,并没有完完全全明白win7系统开启共享文件夹访问权限是如 ...

  7. 查看linux mysql 账户权限设置_Linux下mysql新建账号及权限设置各种方式总结

    来自:http://justcoding.iteye.com/blog/1941116 1.权限赋予 说明:mysql部署在服务器A上,内网上主机B通过客户端工具连接服务器A以进行数据库操作,需要服务 ...

  8. mysql权限设置dede_dede5.7织梦cms目录权限安全配置教程 win服务器iis

    dede5.7织梦cms目录权限安全配置教程 win服务器iis 官方的DEDE安全设置教程,设置好后还是有问题,比如,验证码错误了,因为DATA没有写入权限,还有文件没法生成了,也是因为生成目录没有 ...

  9. android手机usb设置在哪里,Android手机USB调试在哪?安卓手机如何打开USB调试模式?...

    如果我们要将安卓手机连接到电脑上,从而传输文件.下载应用或ROOT等,都需要打开手机的USB调试模式.安卓系统的版本有很多,它们的打开方法也各不相同,下面给大家介绍各版本安卓手机打开USB调试模式的方 ...

最新文章

  1. mysql在线教程嵌套_MySQL update嵌套
  2. Java日志框架-Logback手册中文版以及官方配置文档教程
  3. python经典案例-Python递归的经典案例
  4. 《产品之光》作者Kevin:对于小程序我有话要说
  5. C4C Product Price List的模型中和有效期相关的两个字段
  6. sed: -e expression #1, char 23: unknown option to `s'
  7. php 检测密码,php 判断密码是否简单
  8. vc mysql free result_VC的MySQL编程
  9. 虚拟机安装centos7后无法联网
  10. Restlet学习资源
  11. 软件测试的目的是什么?
  12. 100条修身养性的句子
  13. minio-operator部署minio服务,并用Java客户端访问minio
  14. ubantu下部署python
  15. matlab无法打开wps的xls文件,WPS无法打开XLS文件怎么办 XLS文件出现异常无法打开怎么处理...
  16. uva 1449 Dominating Patterns(AC自动机基本应用)
  17. Linux-Qt--2--调试运行终止弹窗问题-The inferior stopped because it received a signal from the Operating System
  18. 当我们谈深度学习时,我们用它落地了什么?阿里云内容安全功能全新升级
  19. Web服务器群集——编译安装Apache构建虚拟主机
  20. 封装class,让className可以在IE8及其以下版本的浏览器中使用

热门文章

  1. 机器学习入门基础(一)
  2. rtmp一些状态信息详解-as连接FMS服务器报错状态汇总~~
  3. python语言arrows用法_python时区运算,时区,时间戳,夏令时讲解
  4. 管人就是管情绪——从《纸牌屋》中的心理操控说起
  5. Android Studio与Bmob关联
  6. CMDN Club #19: Windows 8 Dev BootCamp - Win8开发知识与产品实践
  7. 范数(简单的理解)、范数的用途、什么是范数
  8. 将JAVA bean/实体类 中为null的属性值转换成空字符串
  9. 有哪些实用的图片去水印的方法?这三个方法让你实现去图片水印
  10. java 文字串叠字检查_逆天叠字又来了!这次是五叠!六叠!八叠字!字字突破你的想象!...