在 setLockscreenVisibility(Notification.VISIBILITY_SECRET) 之后,通知通道仍然出现在锁屏上

After setLockscreenVisibility(Notification.VISIBILITY_SECRET) the notification channel is still appearing on lockscreen

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

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

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

notificationChannel.getLockscreenVisibility()

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

另外一个信息是我之前已经创建了频道。但是我已经用 VISIBILITY_SECRET.

删除并重新创建了频道

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

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

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

documentationsetLockscreenVisibilitysetBypassDnd 是“只能由系统和通知排序器修改”。

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