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

Rus*_*ako 5 java android push-notification kotlin firebase-cloud-messaging

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

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

问题是小米设备在应用通知设置中有特殊权限,允许在锁定屏幕上显示通知。但是这个权限默认是关闭的。但是在某些应用程序中,例如“电报”,从 google play 安装后默认情况下会启用此权限,我找不到如何执行此操作的解决方案。

截屏

小智 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);
Run Code Online (Sandbox Code Playgroud)