使用 App Actions 进行测试时切片的 setSeeMoreAction() 不起作用

setSeeMoreAction() of Slices not working while testing with App Actions

我需要显示比切片可以显示的更多的数据,所以我使用了方法 setSeeMoreAction(PendingIntent intent),它在切片的末尾添加了一个 "see more" 可供性,我们可以设置在什么时候调用哪个动作在 PendingIntent 的帮助下点击它。

在 slice-viewer 应用程序上测试我的切片时,我可以看到 "show more" 功能可见性并点击它按预期工作,但是当我使用 "App Actions Test Tool" 测试它时,它没有显示这个 "see more" 启示。相反,有时(虽然有时什么都不显示)它会显示一个 "Open App" 按钮,单击该按钮不会触发我在 setSeeMoreAction 中提到的未决意图,而是会触发 RowBuilder 的 setPrimaryAction() 中提到的 SliceAction。

这是我的代码:

    override fun onBindSlice(sliceUri: Uri): Slice? {
    if(!isLoggedIn())  // if user is not logged in
    {
        return createLoginSlice(sliceUri).build()
    }
    var head = ListBuilder.HeaderBuilder()
            .setTitle("Slice Title")
    var slice = ListBuilder(context,sliceUri,ListBuilder.INFINITY)
            .setSeeMoreAction(orderActivityPendingIntent())
            .setHeader(head)
    for(i in 0 .. 6) {
            icon = IconCompat.createWithResource(context.applicationContext, R.drawable.placeholder)
        var row = ListBuilder.RowBuilder()
                .setTitleItem(icon!!,ListBuilder.LARGE_IMAGE,true)
                .setTitle(orderName.get(i),true)
                .setSubtitle(orderStatus.get(i),true)
                .addEndItem(IconCompat.createWithResource(context, colorScheme.get(i)),ListBuilder.SMALL_IMAGE)
                .setPrimaryAction(openOrderActivity(orderId.get(i)))
        slice.addRow(row)
    }
    return slice.build()
}

@RequiresApi(Build.VERSION_CODES.KITKAT)
private fun openOrderActivity(orderNo: String?): SliceAction {
    val intent = Intent(Intent.ACTION_VIEW, 
    Uri.parse(context.getString(R.string.orderURI)+orderNo))
        return SliceAction.create(
                PendingIntent.getActivity(context, 0, intent, 0),
                IconCompat.createWithResource(context, R.drawable.abc_ic_star_black_36dp),
                ListBuilder.ICON_IMAGE,
                "Open Order Activity."
        )
    }
private fun orderActivityPendingIntent(): PendingIntent {
        // create intent for order page here
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(context.getString(R.string.orderPageURI)))
        return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
    }

根据docs(虽然容易遗漏):

If all content in a slice cannot be shown, a "see more" affordance may be displayed where the content is cut off.

(关键是“可能”)。

基本上这取决于显示 Slice 的应用程序(在本例中为 Google 助手)是否显示 "see more" 可供性。在 Google 助理的情况下,它可能不会显示它,因为它会自动将一个 "Open App" 按钮附加到它显示的每个切片,因此您应该使用它来 link 用户查看更多信息或采取进一步行动。

如果您认为 "see more" 对您的情况有用,您可以为 App Actions + Slices 提交 feature request 以支持他的 use-cas。