美文网首页
Android判断当前应用通知是否打开

Android判断当前应用通知是否打开

作者: 言者无知_n4c | 来源:发表于2017-01-12 14:36 被阅读0次

public class NotificationsUtils {

private static final String CHECK_OP_NO_THROW = "checkOpNoThrow";

private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";

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;

}

}

相关文章

网友评论

      本文标题:Android判断当前应用通知是否打开

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