4

将通知通道设置为在锁屏时不显示通知后,它仍然在锁屏上显示通知。

notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_SECRET);
notificationManager.createNotificationChannel(notificationChannel);

但是在创建通道之后我可以调试它并且看到通知通道没有将lockScreenVisibility设置为VISIBILITY_SECRET(-1),它仍然具有默认值,即-1000。

notificationChannel.getLockscreenVisibility()

有谁知道如何将锁屏可见性设置为不显示在锁屏上?或者知道为什么它没有被更新?

还有一个信息是我之前已经创建了频道。但是我已经删除并使用 VISIBILITY_SECRET 重新创建了频道。

4

3 回答 3

8

当您删除并重新创建频道时,之前的所有设置都会恢复。如果您想更改频道名称或描述以外的任何内容,则必须创建一个全新的频道(使用不同的频道 ID)或完全卸载/重新安装该应用程序。

于 2017-11-29T17:59:44.837 回答
3

发生这种情况的原因是,如果锁定屏幕不安全(例如未设置 PIN),即使是秘密通知也会显示在锁定屏幕上:

https://android.googlesource.com/platform/frameworks/base/+/android-8.1.0_r33/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java#521

于 2018-06-15T13:55:55.223 回答
0

文档说明了这一点,setLockscreenVisibility并且setBypassDnd“只能由系统和通知排名器修改”。

@WillNewton 的建议仅在您手动更改此设置后才有效。

于 2021-10-18T00:27:27.870 回答