我想在通知栏中显示操作按钮。通知有效,但我看不到任何按钮。我在互联网上阅读了Android开发者文档和不同的例子,但我发现我的代码没有太大的区别。我做了如下:
public void showNotification(Context context) {
NotificationManager mNotifyMgr = (NotificationManager);
context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder = new NotificationCompat.Builder(context);
Intent prevIntent = new Intent(mContext, PlayAudioService.class);
prevIntent.setAction(ACTION_PREV);
PendingIntent piPrev = PendingIntent.getService(mContext, 0, prevIntent, 0);
Intent playIntent = new Intent(mContext, PlayAudioService.class);
playIntent.setAction(ACTION_PLAY);
PendingIntent piPlay = PendingIntent.getService(mContext, 0, playIntent, 0);
Intent nextIntet = new Intent(mContext, PlayAudioService.class);
nextIntet.setAction(ACTION_NEXT);
PendingIntent piNext = PendingIntent.getService(mContext, 0, nextIntet, 0);
mBuilder.setSmallIcon(smallIcon)
.setContentTitle("Title")
.setContentText("Text")
.setTicker("Ticker")
.setWhen(0)
//.setStyle(new NotificationCompat.BigTextStyle().bigText(title))
.addAction (R.drawable.ic_previous, "Prev", piPrev)
.addAction (R.drawable.ic_play, "Play", piPlay)
.addAction (R.drawable.ic_next, "Next", piNext);
Intent notifyIntent = new Intent(context, MainActivity.class);
notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent piNotify =
PendingIntent.getActivity(
mContext,
0,
notifyIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(piNotify);
mNotifyMgr.notify(mNotificationId, mBuilder.build());
}
活动:
showNotification(this);
我的Android目标SDK版本15,我正在使用最新版本的支持库v4。我错过了什么,不能正确理解?
您的回答将不胜感激。
答案 0 :(得分:1)
API 16中引入了通知操作。
这意味着您应该将目标SDK设置为16或更高版本。
但是,只有Jelly Bean及以上版本才能利用通知操作 - 确保在这些平台上测试此功能。
NotificationCompat.Builder
负责生成与其运行的API兼容的Notification,因此如果您要支持Ice Cream Sandwich及更早版本,请继续使用它。如果没有,只需使用Notification.Builder
就足够了(当然,在更改目标SDK之后)。