kotlin setFullScreenIntent仍在向状态栏发布通知

z9zf31ra  于 2022-11-30  发布在  Kotlin
关注(0)|答案(1)|浏览(227)

根据setFullScreenIntent的Android文档:
启动而不是将通知发布到状态栏的意图。
现实:全屏Intent已启动...但通知也会发布到状态栏。
屏幕已锁定,因此用户未使用设备。

val builder = NotificationCompat.Builder(this, CHANNEL_ID)
        .setSmallIcon(android.R.drawable.ic_lock_idle_alarm)
        .setContentTitle(timer.title)
        .setContentText("Description!")
        .setPriority(NotificationCompat.PRIORITY_HIGH)
        .setCategory(NotificationCompat.CATEGORY_REMINDER)
        .setFullScreenIntent(pendingIntent, true) // tried with false too.

你知道为什么这个不管用吗?
我知道我可以在通知出现后删除它,但文档中明确提到它不应该出现。这在真实的设备(Android 11)和模拟器(Android 12)上都是可复制的。
我也注意到Play商店的一些其他应用程序也有同样的问题,它们似乎使用了这样的通知(我不能确定,但它们至少在锁屏状态下显示为全屏)。

soat7uwm

soat7uwm1#

恕我直言,这是文档中的一些老错误。我从来没有仔细阅读过这个方法文档,但我的经验表明,全屏意图总是显示Activity附加到始终存在的通知。或者不会,那么新发布的通知将显示为抬头,例如,当用户在发布通知时使用解锁的设备
文档还展示了此类功能的一些用例
仅用于需要用户立即注意的极高优先级通知,如来电或闹钟
正在考虑呼叫:用户未在GUI中进行任何触摸,而是仅按下主页。电话响铃,如何关闭/拒绝/返回管理Activity,而没有Notification?此类Activity不会保留在最近的历史记录(noHistory)中,您甚至可能意外按下此主页按钮,您甚至不知道在哪个应用程序中查找声源
imho这个通知也应该出现与启动Activity,就像它发生。它甚至是不可见的屏幕上,当用户开始使用您的 * 极高优先级 * Activity。当工作完成,Activity正在完成,那么Notification也可能会消失,但是当用户不做任何决定时,选择某个选项仍然是至关重要-他需要快速选项以返回(即使意外地)"归位"/关闭Activity

相关问题