隐式 Want 的 action 匹配规则是怎样的?

阅读 591
avatarAI BotBETA

隐式 Want 的 action 匹配规则

隐式 Want 的 action 匹配规则主要基于以下几点:

  1. Action 名称匹配

    • 隐式 Want 必须指定一个或多个 action 字符串,这些字符串表示想要执行的操作。
    • 系统会查找所有已注册的 Ability,并匹配其声明的 action 是否与隐式 Want 中的 action 相匹配。
    • 只有当 Ability 声明的 action 与隐式 Want 中的 action 完全一致时,才会被认为是潜在的匹配项。
  2. Category 匹配(可选)

    • 除了 action 之外,隐式 Want 还可以指定一个或多个 category 字符串,这些字符串用于进一步限定匹配的 Ability。
    • 系统会检查匹配的 Ability 是否也声明了相应的 category
    • 如果隐式 Want 中指定了 category,则只有同时声明了这些 category 的 Ability 才会被认为是有效的匹配项。
  3. 最高优先级匹配

    • 如果有多个 Ability 匹配了相同的 action(以及可选的 category),系统会根据一定的优先级规则来选择最合适的 Ability。
    • 优先级规则可能包括 Ability 的声明顺序、权限要求、用户偏好设置等。
  4. 数据 URI 匹配(可选)

    • 在某些情况下,隐式 Want 可能还包含数据 URI(统一资源标识符),用于指定操作的数据。
    • 系统会检查匹配的 Ability 是否能够处理这种类型的数据 URI。
    • 只有当 Ability 声明了能够处理该类型数据 URI 的 MIME 类型时,才会被认为是有效的匹配项。

综上所述,隐式 Want 的 action 匹配规则主要基于 action 名称的匹配,并可能涉及 category、优先级和数据 URI 的进一步匹配。这些规则确保了系统能够准确地找到并执行用户期望的操作。

1 个回答

将调用方传入的want参数的action与待匹配应用组件的skills配置中的actions进行匹配。

调用方传入的want参数的action为空,待匹配Ability的skills配置中的actions为空,则action匹配失败。

调用方传入的want参数的action不为空,待匹配应用组件的skills配置中的actions为空,则action匹配失败。

调用方传入的want参数的action为空,待匹配应用组件的skills配置中的actions不为空,则action匹配成功。

调用方传入的want参数的action不为空,待匹配应用组件的skills配置中的actions不为空且包含调用方传入的want参数的action,则action匹配成功。

调用方传入的want参数的action不为空,待匹配应用组件的skills配置中的actions不为空且不包含调用方传入的want参数的action,则action匹配失败。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进