通知中未显示操作按钮

时间:2013-12-01 10:39:09

标签: android notifications android-notifications

我想在通知栏中显示操作按钮。通知有效,但我看不到任何按钮。我在互联网上阅读了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。我错过了什么,不能正确理解?

您的回答将不胜感激。

1 个答案:

答案 0 :(得分:1)

API 16中引入了通知操作。

这意味着您应该将目标SDK设置为16或更高版本。

但是,只有Jelly Bean及以上版本才能利用通知操作 - 确保在这些平台上测试此功能。

NotificationCompat.Builder负责生成与其运行的API兼容的Notification,因此如果您要支持Ice Cream Sandwich及更早版本,请继续使用它。如果没有,只需使用Notification.Builder就足够了(当然,在更改目标SDK之后)。