判断用户是否允许通知消息
2017-06-06 16:40
176 查看
public class NotificationsTool { private static final String CHECK_OP_NO_THROW = "checkOpNoThrow"; private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION"; @RequiresApi(api = Build.VERSION_CODES.KITKAT) 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 = (int) opPostNotificationValue.get(Integer.class); return ((int) 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; } }
相关文章推荐
- iOS 判断用户是否允许接收远程通知
- iOS - 判断用户是否允许推送通知(iOS7/iOS8)
- iOS 判断用户是否允许了通知
- iOS - 判断用户是否允许推送通知
- iOS技术点:判断用户是否开启推送开关/是否允许推送?
- iOS开发之判断用户是否打开APP通知开关,看我就够了。
- Android判断用户是否允许了摄像头权限实例代码
- Objective-C获取应用是否允许消息通知的方法
- iOS开发之判断用户是否打开APP通知开关
- iOS技术点:判断用户是否开启推送开关/是否允许推送?
- iOS技术点:判断用户是否开启推送开关/是否允许推送?
- iOS开发之判断用户是否打开APP通知开关
- iOS判断用户是否打开APP通知开关
- iOS检测是否开启定位、是否允许消息通知
- iOS检测是否开启定位、是否允许消息通知
- iOS怎么判断用户是否打开了系统设置里面推送通知的开关?
- iOS 判断是否允许app消息推送
- ios判断用户是否打开通知
- asp.net2.0 login控件登录后,判断用户是否在线.
- 用JavaScript判断用户输入的数据是否如何要求!