0

我可以通过 IMPORTANCE_LOW 创建频道来删除声音,但屏幕上没有显示通知。我希望通知像在 IMPORTANCE_HIGH 中一样显示,但没有声音。一种可能的 hacky 方法是在 raw 文件夹中创建一个静音 mp3 并在通知中使用它。

有没有一种正确的方法可以只禁用 Android 通知中的声音而不改变通知本身的视觉行为?我正在为 4.4 和 11 之间的 Android 版本寻找解决方案

到目前为止我尝试过的相关代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val channel = NotificationChannel(getString(R.string.channel_id), getString(R.string.channel_name), NotificationManager.IMPORTANCE_HIGH)
            channel.enableVibration(true)
            channel.setSound(null, null)
            mNotificationManager.createNotificationChannel(channel)
}

var builder = NotificationCompat.Builder(this, chId)
            .setSmallIcon(R.drawable.notification_alarm)
            .setContentTitle(getString(R.string.tx_title))
            .setContentText(message)
            .setAutoCancel(true)
            .setTicker(message)

builder.setDefaults(0)
//builder.setDefaults(Notification.DEFAULT_LIGHTS or Notification.DEFAULT_VIBRATE)
startForeground(ENotifications.id, builder.build())
4

1 回答 1

0

将此代码放入您的项目中

 NotificationChannel notificationChannel = new NotificationChannel("IdNotif","NameNotif", 
 NotificationManager.IMPORTANCE_DEFAULT);
        notificationChannel.setSound(null, null);
        notificationChannel.setShowBadge(false);
        notificationManager.createNotificationChannel(notificationChannel);

我使用 notificationChannel.setSound(null, null); 禁用声音并且不使用空白声音。

于 2021-06-27T09:16:06.337 回答