NotificationCompat.Builder 已弃用

NotificationCompat.Builder is deprecated

private void sendNotification(Context context, String dnsModel) {
    Intent intentAction = new Intent(context, MainActivity.class);

    intentAction.putExtra("dnsModel", dnsModel);

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intentAction, PendingIntent.FLAG_ONE_SHOT);

    notificationBuilder = new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.dns_changer_ico_inverse)
            .setContentTitle(context.getString(R.string.service_ready))
            .setContentIntent(pendingIntent)
            .addAction(R.drawable.ic_vpn_lock_black_24dp, context.getString(R.string.turn_on), pendingIntent)
            .setAutoCancel(true);

    Notification notification = notificationBuilder.build();

    notificationManager.notify(1903, notification);

}

我试过使用 NotificationCompat.Builder(Context context, String channelId),但我在 Context context 上遇到了更多错误,而且我完全没有添加 ``channelId` 的想法。

创建通知渠道并不难。 这是一些代码:https://developer.android.com/training/notify-user/channels#CreateChannel

您可以在应用程序启动时在 MainActivity 或应用程序 class 中执行该代码。

创建频道 ID 后,您可以将其用于 NotificationCompat.Builder(Context context, String channelId)

编辑

CHANNEL_ID 是一个简单的字符串。 例如,您可以将其添加到常量文件中:

public static final String CHANNEL_ID = "your.package.name.notificationChannelId"

您现在可以在创建通知渠道和调用 NotificationCompat.Builder(Context context, String channelId)

时使用此常量