Java 我可以禁用Android Studio中的文本通知吗
因此,我正在开发一款应用程序,它可以使短信通知静音(可能会直接将信息发送到收件箱) 我在用棒棒糖 有没有代码可以让这成为可能 这是我到目前为止得到的 第一个JAVA类Java 我可以禁用Android Studio中的文本通知吗,java,android,android-studio,Java,Android,Android Studio,因此,我正在开发一款应用程序,它可以使短信通知静音(可能会直接将信息发送到收件箱) 我在用棒棒糖 有没有代码可以让这成为可能 这是我到目前为止得到的 第一个JAVA类 public class NoNotification extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { abortBroadcast(); } }
public class NoNotification extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
abortBroadcast();
}
}
第二个JAVA文件
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 api参考资料中搜索了一下,找不到任何方法。这可能是出于安全原因,但是我很确定使用root是可行的。我自己做了一些研究,我看到很多关于使用root的评论(叹气)。还看到了一些关于使用特殊API和做大量清单工作的东西。对于一部无根手机,我认为这在应用程序级别是不可能的。