Android 12 In/out-call 通知和显眼的筹码

Android 12 In/out-call notification and prominent chip

根据 Android 12 文档,有一个特殊的 in/out-call 通知会显示调用 'prominent chip'.

看起来像这样:

我尝试使用 Android 示例中的代码:

// Create a new call with the user as caller.
Person incoming_caller = new Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build();
    
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
        .setContentIntent(contentIntent)
        .setSmallIcon(smallIcon)
        .setStyle(
            Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
        .addPerson(incoming_caller);

在我的应用程序中,我使用 NotificationCompatNotificationCompat.Builder 但是这一行 Notification.CallStyle.forIncomingCall 是指非 Compat 版本,所以我不能将 forIncomingCall 的逻辑用于我现有的通知。

AndroidX 的 NotificationCompat class 尚未更新以包含此新样式 - 您可以在 https://cs.android.com 上搜索 NotificationCompat 以查看最新版本文件,然后您将不得不等待 androidx.core:core 库的新版本。

同时,如果您想使用新的调用方式,您必须使用平台 Notification 类型:

if (Build.VERSION.SDK_INT >= 31) {
  // Use Notification with Notification.CallStyle
} else {
  // use NotificationCompat
}