动态更改通知的操作图标

时间:2014-06-28 09:49:45

标签: android

我正在尝试为我的应用创建一个通知,该通知可以在我点击它时更改其图标,标题和意图。

我可以在3:33看到它的可能性

https://www.youtube.com/watch?v=tKoQatxG0_8&index=73&list=PLOU2XLYxmsIIwGK7v7jg3gQvIAWJzdat_

但我无法找到办法。

另外,如果有人知道如何在链接中使用右手表上的暂停/播放图标,我也想知道。

先谢谢。

3 个答案:

答案 0 :(得分:1)

您可以从notificationObj访问通知操作。操作

请尝试以下操作:(注意:以下代码尚不完整,但是可以使您了解如何更改操作图标)

Notification status = null;
private NotificationCompat.Builder mBuilder;
private NotificationManager mManager;
private final int STATUS_ID = 1;
private String CHANNEL_ID = "channel_name";

private void setUpNotification() {
     mManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

     int playOrPause;
     if(isPlaying()) {
       playOrPause = R.drawable.ic_pause;
     } else {
       playOrPause = R.drawable.ic_play;
     }

     if(mBuilder == null) {
          //Setup Builder
          mBuilder = new NotificationCompat.Builder(this, CHANNEL_ID);
          mBuilder.setOngoing(true) 
                    .addAction(playOrPause, "play", pendingIntent1)      // Index 0
                    .addAction(R.drawable.ic_2, "text2", pendingIntent2) // Index 1
                    .addAction(R.drawable.ic_3, "text3", pendingIntent3);// Index 2

         status = mBuilder.build(); 
     } else {
         //Update builder as per your needs

         mBuilder.setContentTitle(title);
         status = mBuilder.build();
         status.actions[0] = new Notification.Action(playOrPause, "play", pendingIntent1);

     }

     startForeground(STATUS_ID, status);

}

答案 1 :(得分:0)

我能够通过访问builder.mActions来解决同样的问题。它是您添加的所有操作的ArrayList。我修改它而不重新创建构建器,并且调用build似乎更新了它。

这似乎没有在SDK中记录,但我现在对此感到满意。

如果我拿出别的东西,会告诉你

答案 2 :(得分:0)

根据@Sammer J的建议,我提出了以下解决方案。

s3_upload = s3.put_object( Bucket="aaa", Key="/Bbb/cc-cc/filename.png", Body=file_obj)