setLatestEventInfo无法解析

时间:2015-09-08 06:14:06

标签: android android-notifications

我正在尝试在api级别10上进行通知,以下是我的代码但是我得到语法错误setLatestEventInfo无法解析。我猜它与API级别有关

 public static void sendNotification(Context caller, Class<?> activityToLaunch, String title, String msg, int numberOfEvents, boolean sound, boolean flashLed, boolean vibrate, int iconID) {
    NotificationManager notifier = (NotificationManager) caller.getSystemService(Context.NOTIFICATION_SERVICE);

    final Notification notify = new Notification(iconID, "", System.currentTimeMillis());

    notify.icon = iconID;
    notify.tickerText = title;
    notify.when = System.currentTimeMillis();
    notify.number = numberOfEvents;
    notify.flags |= Notification.FLAG_AUTO_CANCEL;
    if (sound) notify.defaults |= Notification.DEFAULT_SOUND;

    if (flashLed) {
        // add lights
        notify.flags |= Notification.FLAG_SHOW_LIGHTS;
        notify.ledARGB = Color.BLUE;
        notify.ledOnMS = 500;
        notify.ledOffMS = 500;
    }

    if (vibrate) {
        notify.vibrate = new long[]{100, 200, 300};
    }

    Intent toLaunch = new Intent(caller, activityToLaunch);
    toLaunch.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
    toLaunch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent intentBack = PendingIntent.getActivity(caller, notify.number, toLaunch, 0);
    notify.setLatestEventInfo(caller, title, msg, intentBack);
    notifier.notify(notify.number, notify);
    notify.number = notify.number + 1;
}

1 个答案:

答案 0 :(得分:8)

如果您的编译SDK版本设置为api 23+,您将看到此问题。在M(api 23)中除去该方法。

要为api 4开始发送通知,您可以使用NotificationCompat.Builder中添加的Android Support LibraryAndroid Documentation有一个不错的例子:

 Notification noti = new Notification.Builder(mContext)
         .setContentTitle("New mail from " + sender.toString())
         .setContentText(subject)
         .setSmallIcon(R.drawable.new_mail)
         .setLargeIcon(aBitmap)
         .build();

如果需要支持旧的api版本,可以将“Notification.Builder”替换为“NotificationCompat”。