我正在尝试在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;
}
答案 0 :(得分:8)
如果您的编译SDK版本设置为api 23+,您将看到此问题。在M(api 23)中除去该方法。
要为api 4开始发送通知,您可以使用NotificationCompat.Builder中添加的Android Support Library。 Android 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”。