Android 应用通知权限是否开启以及跳转到设置界面

来源:互联网 发布:php简历模板免费下载 编辑:程序博客网 时间:2024/06/11 23:26

因为项目用到推送功能,所以需求是知道用户是否开启了通知栏的权限,并且提供滑动按钮进行跳转以便用户进行关闭或者开启。

1.获取通知栏权限是否开启:

/** * 获取通知栏权限是否开启 *  */public class NotificationsUtils {   private static final String CHECK_OP_NO_THROW = "checkOpNoThrow";   private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";   @SuppressLint("NewApi")   public static boolean isNotificationEnabled(Context context) {      AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);      ApplicationInfo appInfo = context.getApplicationInfo();      String pkg = context.getApplicationContext().getPackageName();      int uid = appInfo.uid;      Class appOpsClass = null;      /* Context.APP_OPS_MANAGER */      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 (ClassNotFoundException e) {         e.printStackTrace();      } catch (NoSuchMethodException e) {         e.printStackTrace();      } catch (NoSuchFieldException e) {         e.printStackTrace();      } catch (InvocationTargetException e) {         e.printStackTrace();      } catch (IllegalAccessException e) {         e.printStackTrace();      }      return false;   }}
2.进入系统设置界面
protected void requestPermission(int requestCode) {   // TODO Auto-generated method stub   // 6.0以上系统才可以判断权限   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BASE) {      // 进入设置系统应用权限界面      Intent intent = new Intent(Settings.ACTION_SETTINGS);      startActivity(intent);      return;   } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {// 运行系统在5.x环境使用      // 进入设置系统应用权限界面      Intent intent = new Intent(Settings.ACTION_SETTINGS);      startActivity(intent);      return;   }   return;}
 这个功能不是特别重要,但是有时候确实有这样的需求。

本文转载 出处


1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 兔子不吃东西没精神怎么办 母兔没有初奶怎么办 兔子只喝水不吃东西怎么办 兔子不吃东西也不喝水怎么办 兔子怀孕后不爱吃东西喝水怎么办 母兔产仔无奶怎么办 仔兔十五天母兔没奶怎么办 兔子刚生下兔宝宝该怎么办 兔子不吃草超瘦怎么办 兔子喝水喝多了怎么办 狗吃了变质食物怎么办 狗崽20天没睁眼怎么办 刚生的小狗缺氧怎么办 狗狗生出来了怎么办 刚生的小狗狗死了怎么办 母狗生的死狗怎么办 狗生宝宝都死了奶水怎么办 狗狗生出来不动怎么办 兔子喝了84水怎么办 小狗喝了84水怎么办 天气热宝宝不爱喝水怎么办 狗脐带掉了出血怎么办 刚生的小狗没奶怎么办 家兔在笼子里下崽怎么办 小兔子不吃东西 精神不好怎么办 兔子要生宝宝了怎么办 宝宝让兔子咬了怎么办 兔子的右耳坏了怎么办 被小兔子咬了怎么办 打老鼠被老鼠咬了了怎么办 制作棒棒糖时木棍翘起怎么办 兔子被打后怕我怎么办 兔子后腿摔断了怎么办 兔子腿骨头断了怎么办 减肥老是控制不住吃怎么办 不爱吃主食爱吃零食怎么办 猫咪奶涨的很硬怎么办 斩魂技能乱加的怎么办 狗狗不吃东西还拉稀怎么办 狗狗拉稀不吃饭怎么办 狗狗几天不吃东西怎么办