在android通知中无法解析方法setLatestEventInfo

时间:2016-01-22 08:43:31

标签: android notifications notificationmanager

我刚刚导入了一个android项目,在Notification部分,我必须使用setLatestEventInfo。但Android Studio说无法解析方法setLatestEventinfo。这是我的代码片段,请在回答时帮助编辑我的代码

            NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
            Notification notification = new Notification(R.drawable.ic_launcher,"CEPF Mobile",0);
            Intent notify_intent = new Intent(context,SpecialSerivceReportActivity.class);
            notify_intent.putExtra("filename", "Special Service Report");
            notify_intent.putExtra("URL", urls[0]);
            PendingIntent contentIntent = PendingIntent.getActivity(context,(int)System.currentTimeMillis(),notify_intent,PendingIntent.FLAG_ONE_SHOT);
            notification.setLatestEventInfo(context, "CEPF Mobile", "New post in Special Service Report", contentIntent);
            notification.flags = Notification.FLAG_AUTO_CANCEL;
            notification.defaults = Notification.DEFAULT_SOUND ;
            nm.notify((int)System.currentTimeMillis(),notification);
            }
            else if(message.equalsIgnoreCase("Special Columnist Blog"))
            {

            NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
            Notification notification = new Notification(R.drawable.ic_launcher,"CEPF Mobile",0);
            Intent notify_intent = new Intent(context,SpecialSerivceReportActivity.class);
            notify_intent.putExtra("filename", "Special Columnist Blog");
            notify_intent.putExtra("URL", urls[1]);
            PendingIntent contentIntent = PendingIntent.getActivity(context,(int)System.currentTimeMillis(),notify_intent,PendingIntent.FLAG_ONE_SHOT);
            notification.setLatestEventInfo(context, "CEPF Mobile", "New post in Special Columnist Blog", contentIntent);
            notification.flags = Notification.FLAG_AUTO_CANCEL;
            notification.defaults = Notification.DEFAULT_SOUND ;
            nm.notify((int)System.currentTimeMillis(),notification);
            }

2 个答案:

答案 0 :(得分:3)

在API 23中,{p> setLatestEventInfo()来自Notification,如果您的目标是API 23或更高版本,则需要重写代码。

而不是:

Notification notification = new Notification(R.drawable.ic_launcher,"CEPF Mobile",0);
notification.setLatestEventInfo(context, "CEPF Mobile", "New post in Special Columnist Blog", contentIntent);

执行:

Notification.Builder builder = new Notification.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("CEPF Mobile")
.setContentText("New post in Special Columnist Blog")
.setContentIntent(contentIntent);
Notification notification = builder.buid();

关于使用的一些注意事项:

  • 如果您使用Android支持库,请使用NotificationCompat.Builder代替Notification.Builder
  • 由于您要在通知上设置更多属性,请查看构建器类提供的方法,并考虑使用这些属性,尤其是在不同位置创建类似通知时。
  • 建议不要使用应用程序的主图标进行通知,因为Android现在强制通知图标以黑白呈现,所有不透明区域呈现为白色。您可能希望设计一个在此设置中仍可识别的图标。

答案 1 :(得分:0)

对于最佳方法,请在android studio的支持下创建通知代码,

右键点击应用,然后点击,然后点击用户界面,再点击通知,然后点击完成。

代码已准备好使用。