Notification.Builder 中的 setDefaults 在 android O 及更高版本(SDK >= 26)中已弃用

还有 setSound
这是我的代码

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        b.setAutoCancel(true)
                .setSmallIcon(R.drawable.ic_luncher_new)
                .setContentTitle(Title)
                .setTicker(Title)
                .setContentText(Msg)
                .setChannelId("cid")
                .setDefaults(Notification.DEFAULT_ALL)
                .setStyle(new Notification.BigTextStyle().bigText(Msg))
                .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                .setContentIntent(contentIntent);
    }
NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        notificationManager.createNotificationChannel(mChannel);
    }
    notificationManager.notify(id, b.build());`

我应该更换什么?我没有找到任何有用的例子

最佳答案

setDefaults 应替换为使用以下内容

  • NotificationChannel.enableVibration(boolean)
  • NotificationChannel.enableLights(boolean)
  • NotificationChannel.setSound(Uri, AudioAttributes)

  • source
    setSound 应替换为使用
  • NotificationChannel.setSound(Uri, AudioAttributes)

  • source

    关于android - 在 Notification.Builder 中不推荐使用 setDefaults,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51019645/

    10-10 09:33