Android 使用应用程序操作进行测试时,片的setSeeMoreAction()不工作
我需要显示比切片所能显示的更多的数据,所以我使用了setSeeMoreAction(PendingEvent intent)方法,它在切片的末尾添加了一个“查看更多”的启示,我们可以在PendingEvent的帮助下设置点击它时调用哪个动作 在slice viewer应用程序上测试我的切片时,我可以看到“显示更多”的启示,并单击其按预期工作,但当我使用“应用程序操作测试工具”进行测试时,它不会显示这种“查看更多”的启示。相反,有时(有时不显示任何内容)它会显示一个“打开应用程序”按钮,单击该按钮不会触发我在setSeeMoreAction中提到的挂起意图,而是会触发RowBuilder的setPrimaryAction()中提到的SliceAction 这是我的密码:Android 使用应用程序操作进行测试时,片的setSeeMoreAction()不工作,android,app-actions,android-slices,Android,App Actions,Android Slices,我需要显示比切片所能显示的更多的数据,所以我使用了setSeeMoreAction(PendingEvent intent)方法,它在切片的末尾添加了一个“查看更多”的启示,我们可以在PendingEvent的帮助下设置点击它时调用哪个动作 在slice viewer应用程序上测试我的切片时,我可以看到“显示更多”的启示,并单击其按预期工作,但当我使用“应用程序操作测试工具”进行测试时,它不会显示这种“查看更多”的启示。相反,有时(有时不显示任何内容)它会显示一个“打开应用程序”按钮,单击该按钮
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)
}
根据以下信息(尽管容易错过):
如果一个片段中的所有内容都无法显示,则“查看更多”提示可能会出现
将显示在内容被切断的位置
(键为“可能””)
基本上,这取决于应用程序是否显示了“查看更多”功能。对于Assistant,它可能不会显示它,因为它会在显示的每个片段上自动附加一个“Open App”按钮,因此您应该使用该按钮链接用户以查看更多信息或采取进一步的操作
如果您认为“查看更多”对您的情况有用,您可以提交一份应用程序操作+切片,以支持his以及您使用cas的详细信息。根据(尽管很容易错过):
如果一个片段中的所有内容都无法显示,则“查看更多”提示可能会出现
将显示在内容被切断的位置
(键为“可能””)
基本上,这取决于应用程序是否显示了“查看更多”功能。对于Assistant,它可能不会显示它,因为它会在显示的每个片段上自动附加一个“Open App”按钮,因此您应该使用该按钮链接用户以查看更多信息或采取进一步的操作
如果您认为“查看更多”在您的案例中很有用,您可以提交一个for App Actions+Slices来支持他以及您使用CA的详细信息。对于我的用例,“显示更多”和“打开应用”都可以。但问题是,我假设“打开应用”按钮将执行setSeeMoreAction()的挂起意图中提到的相同操作,但是,它正在执行其他行切片的PrimaryAction中提到的操作。那么,我到底要在哪里提到单击“打开应用程序”时要执行的操作呢?啊,我明白了。您看到的行为是正确的,“打开应用程序”按钮从第一行的主要操作中拉出。所以你应该在那里设置它。对于我的用例,“显示更多”和“打开应用程序”都可以。但问题是,我假设“打开应用程序”按钮将执行setSeeMoreAction()的挂起意图中提到的相同操作,但它执行的是其他行切片的PrimaryAction中提到的操作。那么,我到底要在哪里提到单击“打开应用程序”时要执行的操作呢?啊,我明白了。您看到的行为是正确的,“打开应用程序”按钮从第一行的主要操作中拉出。所以你应该把它放在那里。