2017-04-18 74 views
2

我有以下简单的类,我想用来通知用户传入的消息(我将随着应用程序的发展而演变)。但现在,在最后一行,则下面的错误,我不能运行:NotificationCompat.Builder:无法解析方法构建()

无法解析方法构建()

这里是代码:

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但没有做任何改变

我在做什么错了?

P.S.目标(&分钟)SDK = 21

回答

0

通知方法是在支持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); 
} 
+0

感谢您的解决方案,但遗憾的是并没有完全解决我的困境尚未我有同样的错误!同样的错误出现在您的最后一行 –

+0

检查您的导入:import android.support.v4.app.NotificationCompat; – ADM

+0

它已经导入.. –