IntentServer QML 类型
代表 Intents 子系统的 System UI 单例。 更多...
导入声明 | 导入 QtApplicationManager.SystemUI 2.0 |
信号
- disambiguationRequest(uuid requestId, list<Intent> potentialIntents, var parameters)
- intentAboutToBeRemoved(Intent intent)
- intentAdded(Intent intent)
方法
- acknowledgeDisambiguationRequest(uuid requestId, Intent selectedIntent)
- IntentObject applicationIntent(string intentId, string applicationId, var parameters)
- object get(int index)
- int indexOfIntent(IntentObject intent)
- int indexOfIntent(string intentId, string applicationId, var parameters)
- IntentObject intent(int index)
- IntentObject packageIntent(string intentId, string packageId, string applicationId, var parameters)
- IntentObject packageIntent(string intentId, string packageId, var parameters)
- rejectDisambiguationRequest(uuid requestId)
详细描述
此单例有两个用途:一方面,它通过其项目模型 API 给 System UI 提供对所有可用意图数据库的访问权限,另外它还公开了处理歧义意图请求的 API。如果请求方仅在调用 IntentClient::sendIntentRequest() 时指定了 intentId
,而没有指定目标 applicationId
,则意图请求可能是歧义的。在这些情况下,系统 UI 应负责通过反应在 disambiguationRequest() 信号上解歧这些请求。
此类型继承自 QAbstractListModel
,因此它可以直接用作 app-grid 视图中的模型。
在此模型中可用以下角色
角色名称 | 类型 | 描述 |
---|---|---|
intentId | string | 意图的 ID。 |
packageId | string | 包含此意图处理应用包的唯一 ID。 |
applicationId | string | 负责处理此意图的应用程序的 ID。 |
name | string | 意图的名称。如果可能,已翻译为当前区域设置。如果没有为意图定义名称,则返回对应包的名称。 |
icon | string | 意图图标的 URL。如果没有为意图定义图标,则返回对应包的图标。 |
categories | list<string> | 此意图通过元数据文件注册的类别。 |
intent | Intent | 用于快速访问模型代理外的属性的底层 Intent 对象。 |
信号文档
当 IntentServer 收到可能被多个应用程序处理的目的请求信号时,会发出此信号。
注意: 只有当连接了接收器时才能发出此信号。如果没有连接信号,将随机选择列表中可能匹配的应用程序来处理此请求。
此信号的接收器会接收到请求的 requestId 及其 parameters。然后,它可以调用 acknowledgeDisambiguationRequest() 从提供的 potentialIntents 中选择一个,或者调用 rejectDisambiguationRequest() 完全拒绝此意图请求。在这两种情况下,唯一需要发送的 requestId 用于识别意图请求。
不调用这两个函数之一会导致内存泄漏。
注意: 对应的处理程序是 onDisambiguationRequest
。
当即将从 intentList 中删除现有 intent 时发出(如应用卸载时)。
注意: 对应的处理程序是 onIntentAboutToBeRemoved
。
方法文档
告诉 IntentServer 继续处理由 requestId 标识的发送者的意图请求。所选择的 selectedIntent 必须是发送给 disambiguationRequest 信号接收者的 potentialIntents
之一。
IntentObject applicationIntent(string intentId, string applicationId, var parameters) |
返回与给定的 intentId、applicationId 和 parameters 对应的 intent 或 null
(如果 id 不存在)。
此方法公开了用于内部匹配 incoming Intent 请求的功能,这些请求针对由 intentId 标识的 intent 并针对由 applicationId 标识的应用。尽管您可以使用 JavaScript 在 intentList 上迭代,但此函数的好处是还会将提供的 parameters 与任何给定的 parameter matches 进行检查。
注意: 返回的 Intent 对象的所有权属于应用程序管理器。如果您想存储此指针,可以使用 QAbstractListModel 信号或 intentAboutToBeRemoved 信号,如果在 C++ 端即将删除对象,您可以接收通知。
对象 get(int index) |
int indexOfIntent(IntentObject intent) |
将 intent 映射到该模型内的位置。如果指定的意图无效,则返回 -1
。
另请参阅intent()。
将指定的 intentId、applicationId 和 parameters 对应的意图映射到该模型内的位置。如果指定的意图无效,则返回 -1
。
另请参阅intent()。
IntentObject intent(int index) |
返回模型中对应于给定 index 的 intent,如果索引无效,则返回 null
。
注意: 返回的 Intent 对象的所有权属于应用程序管理器。如果您想存储此指针,可以使用 QAbstractListModel 信号或 intentAboutToBeRemoved 信号,如果在 C++ 端即将删除对象,您可以接收通知。
IntentObject packageIntent(string intentId, string packageId, string applicationId, var parameters) |
返回对应于给定 intentId、packageId、applicationId 和 parameters 的 intent,如果 ID 不存在,则返回 null
。
另请参阅applicationIntent。
IntentObject packageIntent(string intentId, string packageId, var parameters) |
返回对应于给定 intentId、packageId 和 parameters 的 intent,如果 ID 不存在,则返回 null
。
另请参阅applicationIntent。
告知 IntentServer 忽略由 requestId 标识的发送者的意图请求。在这种情况下,原始发送者将收到错误回应。
©2019 Luxoft瑞典AB。本文档中的内容贡献归各自所有者版权所有。本提供的文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3进行许可。Qt及其相应标志是芬兰Qt公司及其在全世界或其他国家的商标。所有其他商标均为各自所有者所有。