我正在构建一个应用程序,当我收到任何通知时,如果我的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);
}
有人可以帮我这么做吗?
提前谢谢。
答案 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
标记。