在android中以锁定模式收到通知时,避免屏幕亮起(唤醒)

时间:2018-02-01 05:30:22

标签: android

我正在构建一个应用程序,当我收到任何通知时,如果我的Android手机处于锁定状态,我想避免屏幕照明。

我正在尝试找到解决方案,但我无法做任何事情。

我在switch.setOnCheckedChangeListener(this);上尝试了以下代码 但它不起作用。

if (Build.VERSION.SDK_INT >= 23) {
    if ((notificationManager != null) && !notificationManager.isNotificationPolicyAccessGranted()) {
        Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);       
        startActivityForResult(intent, RQS_ENABLE_DO_NOT_DISTURB_SCREEN_FLASH);
    } else {
        if (b) {
            notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);
        } else {
            notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALL);
        }
    }
} else {
    Toast.makeText(this, "Don't have notification policy permissions", Toast.LENGTH_LONG);
}

有人可以帮我这么做吗?

提前谢谢。

1 个答案:

答案 0 :(得分:-1)

请在setContentView之前和super.onCreate之后将这些行添加到您的活动开头:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                + WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
                + WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                + WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                + WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

您可以避免使用WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON标记。