Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以禁用Android Studio中的文本通知吗_Java_Android_Android Studio - Fatal编程技术网

Java 我可以禁用Android Studio中的文本通知吗

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(); } }

因此,我正在开发一款应用程序,它可以使短信通知静音(可能会直接将信息发送到收件箱)

我在用棒棒糖

有没有代码可以让这成为可能

这是我到目前为止得到的

第一个JAVA类

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和做大量清单工作的东西。对于一部无根手机,我认为这在应用程序级别是不可能的。