在小米设备的锁定屏幕上显示通知

时间:2019-05-20 12:01:43

标签: java android kotlin push-notification firebase-cloud-messaging

推送通知未在小米设备的锁定屏幕上显示。

我试图在通知生成器和通道中使用VISIBILITY_PUBLIC,但是它不起作用。

问题在于,小米设备在应用程序通知设置中具有特殊权限,该权限允许在锁定屏幕上显示通知。但是此权限默认情况下处于关闭状态。但是在诸如“ Telegram”之类的某些应用中,从Google Play安装后,默认情况下此权限处于启用状态,我找不到解决方案。

screenshot

1 个答案:

答案 0 :(得分:0)

不确定这是否有帮助,但我在华为设备(API 29)上遇到了类似的问题。 我想在我的 NotificationChannel 上使用 NotificationManager.IMPORTANCE_LOW,但是当我尝试在此华为设备上发送通知时,它们在锁定屏幕上不可见。

我发现这款华为设备上有一个应用程序通知选项可以使用“温和通知”。这些通知不会显示在锁定屏幕上,如果您的频道使用 IMPORTANCE_LOW 或以下,则默认情况下会启用此选项。 将频道的重要性更改为 IMPORTANCE_DEFAULT 解决了我的问题。

因为我想要 IMPORTANCE_LOW 因为我不想要通知声音,所以我只需要做一些解决方法并设置 setSound(null, null) 和 setVibrationPattern(null)。

NotificationChannel nChannel1 = new NotificationChannel(CHANNEL_1_ID, "Channel Name", NotificationManager.IMPORTANCE_DEFAULT);
nChannel1.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
nChannel1.setSound(null, null);
nChannel1.setVibrationPattern(null);
nChannel1.setDescription("Description");
nManager = context.getSystemService(NotificationManager.class);
nManager.createNotificationChannel(nChannel1);
    
Notification notification = new NotificationCompat.Builder(applicationContext, CHANNEL_1_ID)
            .setContentTitle("title")
            .setContentText("text")
            .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
            .build();
nManager.notify(1, notification);