android - NotificationCompat.Builder : Cannot resolve method build()

标签 android notifications builder

我有以下简单的类,我想用它来通知用户收到的消息(我会随着应用程序的发展而改进它)。但是现在,在最后一行,有以下错误,我无法运行它:

Cannot resolve method build()

代码如下:

import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;

public class UserNotificationActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void triggerNoti() {
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("My notification")
                .setContentText("Hello World!");

        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(001, mBuilder.build());
    }
}

我试过这个 solution但没有做任何改变

我做错了什么?!

附注:目标(& min)sdk = 21

最佳答案

为支持 V4 及 API 级别 19 以上,通知方式略有改变 .您可以尝试下面的代码块。

public void sendNotification(String message, String title, Intent intent, int not_id) {
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
            PendingIntent.FLAG_ONE_SHOT);
    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notification;
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        notification
                = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.app_icon)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
                .setContentTitle(title)
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setContentText(message)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);

    } else {
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.app_icon);
        notification
                = new NotificationCompat.Builder(this)
                .setContentTitle(title)
                .setSmallIcon(R.drawable.small_icon)
                .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
                .setContentText(message)
                .setAutoCancel(true)
                //.setColor(Color.parseColor("#1a4994"))
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setLargeIcon(bitmap)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);
    }
    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(not_id, notification.build());
}

更新 NotificationChannel :

    public void initChannels(Context context) {
    if (Build.VERSION.SDK_INT < 26) {
        return;
    }
    NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationChannel channel = new NotificationChannel("default",
                                                          "Channel name",
                                                          NotificationManager.IMPORTANCE_DEFAULT);
    channel.setDescription("Channel description");
    notificationManager.createNotificationChannel(channel);
}

关于android - NotificationCompat.Builder : Cannot resolve method build(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43472415/

相关文章:

android - 如何在android中通过通知播放音乐?

c++ - Borland C++ Builder 中的 scanf

rust - "borrowed value does not live long enough"使用 builder 模式时

java - build 者的最后障碍

android - 如何更改 List Tile Widget 的文本大小?

android - 错误 :(3, 0) 原因:org/apache/commons/lang3/StringUtils

使用 Play Framework 在 Heroku 中访问数据库时间

java - Android:从ArrayList中提取数据

android - Android Studio 登录 Github 失败

android - 将消息从启动 Activity 的 Activity 发送到在单击通知时启动的 Activity