Android:以编程方式向通知添加按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:以编程方式向通知添加按钮相关的知识,希望对你有一定的参考价值。

我正在尝试以编程方式将Imagebuttons添加到通知中,但我找不到工作方法。我知道这是可能的,因为我看到了similar app

这是我构建通知的方式:

public class MyNotification extends Notification {
private Context ctx;

public Context getCtx() {
    return ctx;
}

private NotificationManager mNotificationManager;


public MyNotification(Context ctx, int layout_id) {
    super();
    this.ctx = ctx;
    String ns = Context.NOTIFICATION_SERVICE;

    mNotificationManager = (NotificationManager) ctx.getSystemService(ns);
    CharSequence tickerText = "Shortcuts";
    long when = System.currentTimeMillis();

    Notification.Builder builder = new Notification.Builder(ctx);
    Notification notification = builder.getNotification();
    notification.when = when;
    notification.tickerText = tickerText;
    notification.icon = R.drawable.ic_launcher;



    RemoteViews contentView = new RemoteViews(ctx.getPackageName(), layout_id);



    //set button listners
    setListeners(contentView);

    notification.contentView = contentView;
    notification.flags |= Notification.FLAG_ONGOING_EVENT;
    mNotificationManager.notify(1387, notification);

}

以及我如何尝试添加ImageButton

  RemoteViews button = new RemoteViews(ctx.getPackageName(), R.layout.image_btn_layout_test);


    Intent actionIntent = new Intent("MyIntent");
    PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, 0, actionIntent, 0);
    button.setOnClickPendingIntent(R.id.image, pendingIntent);

    contentView.addView(R.layout.noti_layout, button);
答案

阅读以下问题:

How to add button to notifications in android? Adding button action in custom notification Handling buttons inside android notifications

另请参阅Notification Actions开发人员指南。

此外,看起来在创建通知后您无法添加操作,因此您应该使用指定的操作创建新通知,然后替换之前的通知(为您的通知分配ID)。

以上是关于Android:以编程方式向通知添加按钮的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式设置 Android 按钮样式

Android:以编程方式在片段中添加多个 RecyclerView

Android 以编程方式打开手电筒按钮

以编程方式将片段添加到android中的框架布局

Android:向活动添加片段

根据活动(即可见)片段以编程方式启用或禁用按钮