我正在创建一个通知,该通知从可穿戴设备发出,仅在可穿戴设备上发出,而不是在手机上发出。我希望它有两个动作按钮(还没有功能)和第三个动作,当点击通知本身时。我正在尝试使用setContentAction()使最后一个操作成为单击通知时的操作,但它仍然显示为单独的操作按钮(根据文档here它不应显示单独的按钮)。然而,这个不需要的按钮激发了所需的意图。通知本身不响应点击。以下是创建通知的代码:
Intent pictureIntent = new Intent(this, PictureActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 254, pictureIntent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.medicinepillmd)
.setContentTitle(dose[0])
.setContentText(dose[3])
.extend(new NotificationCompat.WearableExtender()
.setContentIcon(R.drawable.thumbnail)
.setBackground(BitmapFactory.decodeResource(getResources(), R.drawable.orangegirl))
.addAction(new NotificationCompat.Action.Builder(R.drawable.medicinepillmd, "Taken", null).build())
.addAction(new NotificationCompat.Action.Builder(R.drawable.thumbnail, "Skipped", null).build())
.addAction(new NotificationCompat.Action.Builder(0, null, pendingIntent).build())
.setContentAction(2));
任何人都知道为什么这可能不符合预期的行为?任何输入赞赏。感谢
答案 0 :(得分:11)
setContentAction(int index)允许您指定将“合并”到卡中的操作。它会从“操作页面”中删除此操作,它只会出现在您的主卡上。但是,问题的原因是您没有为Action
指定图标资源。没有图标,它无法合并到主卡。
您需要指定一些图标并将其添加到您的操作中:
.addAction(new NotificationCompat.Action.Builder(R.drawable.some_icon, null, pendingIntent).build())
如果你真的不想要任何图标,你可以使用带有空图标的“hack”:
empty_icon.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
</shape>
注意:setContentIntent(PendingIntent intent)
不会使您的卡可以点击。它只会使用标签创建并添加另一个动作(最右边):“打开”。