Android 可以在折叠的通知中显示操作图标吗?
Can Android show action icons in collapsed notifications?
在通知中查看操作的默认行为是展开通知。我可以在不需要展开的情况下展示它们吗?
是的! :) 你可以,在 Android 5.0+(自 API 级别 21)。
这是一个工作示例:
if (Build.VERSION.SDK_INT >= 26) // Android 8 or later?
{
builder = new Notification.Builder (this, Const.NOTIF_CHANNEL_ID);
}
else
{
builder = new Notification.Builder (this);
}
builder.setSmallIcon (R.drawable.ic_notif_icon, 0)
.setVisibility (Notification.VISIBILITY_PUBLIC)
.setCategory (Notification.CATEGORY_ALARM)
.setContentIntent (pendingMainActionIntent)
.setOngoing (true)
.addAction (R.drawable.ic_button1, "BUTTON 1", pButton1Intent)
.addAction (R.drawable.ic_button2, "BUTTON 2", pButton2Intent)
.addAction (R.drawable.ic_button3, "BUTTON 3", pButton3Intent)
// Apply the media style template so that we get buttons on the notification widget even when it's in the collapsed mode
.setStyle (new Notification.MediaStyle ().setShowActionsInCompactView (0, 1, 2));
主要注意最后一行,这确保了你想要的:
.setStyle (new Notification.MediaStyle ().setShowActionsInCompactView (0, 1, 2))
还要注意传递给 setShowActionsInCompactView 的参数。例如,如果您只想显示 BUTTON 2 和 BUTTON 3(而不是 BUTTON 1),您可以这样做:
.setShowActionsInCompactView (1, 2)
已在 Android 8.1、Google Pixel 2 和 Samsung S9 上测试,但代码应该也适用于 Android 5-7 和其他手机。享受吧。
更新:之前的代码仅适用于 Android 8。使其也支持早期版本。同样在 Android 8 上,你不应该忘记在我发布的代码下方调用 builder.setChannelId (Const.NOTIF_CHANNEL_ID)
。
更新 2:在 setShowActionsInCompactView
后添加了一个缺失的括号并改进了缩进。
在通知中查看操作的默认行为是展开通知。我可以在不需要展开的情况下展示它们吗?
是的! :) 你可以,在 Android 5.0+(自 API 级别 21)。
这是一个工作示例:
if (Build.VERSION.SDK_INT >= 26) // Android 8 or later?
{
builder = new Notification.Builder (this, Const.NOTIF_CHANNEL_ID);
}
else
{
builder = new Notification.Builder (this);
}
builder.setSmallIcon (R.drawable.ic_notif_icon, 0)
.setVisibility (Notification.VISIBILITY_PUBLIC)
.setCategory (Notification.CATEGORY_ALARM)
.setContentIntent (pendingMainActionIntent)
.setOngoing (true)
.addAction (R.drawable.ic_button1, "BUTTON 1", pButton1Intent)
.addAction (R.drawable.ic_button2, "BUTTON 2", pButton2Intent)
.addAction (R.drawable.ic_button3, "BUTTON 3", pButton3Intent)
// Apply the media style template so that we get buttons on the notification widget even when it's in the collapsed mode
.setStyle (new Notification.MediaStyle ().setShowActionsInCompactView (0, 1, 2));
主要注意最后一行,这确保了你想要的:
.setStyle (new Notification.MediaStyle ().setShowActionsInCompactView (0, 1, 2))
还要注意传递给 setShowActionsInCompactView 的参数。例如,如果您只想显示 BUTTON 2 和 BUTTON 3(而不是 BUTTON 1),您可以这样做:
.setShowActionsInCompactView (1, 2)
已在 Android 8.1、Google Pixel 2 和 Samsung S9 上测试,但代码应该也适用于 Android 5-7 和其他手机。享受吧。
更新:之前的代码仅适用于 Android 8。使其也支持早期版本。同样在 Android 8 上,你不应该忘记在我发布的代码下方调用 builder.setChannelId (Const.NOTIF_CHANNEL_ID)
。
更新 2:在 setShowActionsInCompactView
后添加了一个缺失的括号并改进了缩进。