gpt4 book ai didi

android - 如何获得满足隐含 Intent 的 Activity 数量?

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:35 25 4
gpt4 key购买 nike

我正在使用隐式 Intent ,例如,打开图库来选择图像。我通常会执行以下操作:

Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
.takeIf { it.resolveActivity(activity.packageManager) != null }
?.let {
val intent = Intent.createChooser(it, "Choose gallery")
activity.startActivityForResult(intent, rc)
}

但如果该 Intent 仅由我设备上的一个应用程序解决,并且除了一个应用程序之外没有其他图库应用程序,则选择器将仅显示单个选择,即没用。

我如何确定是否有许多 Activity 可以处理该 Intent ?如何获得实际适合的 Activity 数​​量?因此,决定是否显示选择器

最佳答案

How could I figure out whether there are many activities that could handle that intent?

PackageManager 上调用 queryIntentActivities(),提供您的 Intent

How to get the number of activities that actually fit?

抱歉,我不知道“适合”在这种情况下是什么意思。

And hence, decide whether to show chooser or not

您可以简单地去掉 Intent.createChooser() 调用。仅当您希望强制用户拥有来处理选择器时才使用它。如果您关闭 Intent.createChooser()系统将在需要时自行显示一个选择器。如果出现这种情况:

  • 有 2 个以上的 Activity 符合 Intent,并且
  • 用户没有为该Intent 结构选择默认 Activity

顺便说一句,请从您的代码中删除 type = "image/*"ACTION_PICK 不使用 MIME 类型。

关于android - 如何获得满足隐含 Intent 的 Activity 数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57756488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com