我可以通过 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())