IntentServer QML 类型

表示Intent子系统的系统UI侧的单例。 更多...

导入语句import QtApplicationManager.SystemUI 2.0

信号

方法

详细描述

此单例有两个用途:一方面,它通过其项模型API为系统UI提供了对所有可用意图的数据库访问,同时暴露了处理模糊意图请求的API。如果请求方仅在IntentClient::sendIntentRequest()调用中指定了intentId,但未指定目标applicationId,则意图请求可能是模糊的。在这些情况下,系统UI有责任通过响应disambiguationRequest()信号来消除这些请求的歧义。

此类从QAbstractListModel派生,因此可以直接用作应用网格视图中的模型。

在此模型中提供以下角色

角色名称类型描述
intentIdstring意图的id。
packageIdstring包含处理此意图的应用程序的唯一id的包的唯一id。
applicationIdstring负责处理此意图的应用程序的id。
namestring意图的名称。如果可能,已翻译到当前区域设置。如果没有为意图定义名称,则将返回相应的包名称。
iconstring意图图标的URL。如果未定义意图图标,则返回对应包的图标。
类别list此意图通过其元数据文件注册的类别。
intentIntentObject用于快速访问模型代理之外属性的基础 IntentObject
intentObjectIntentObjectintent 完全相同。这是为了在 PackageManager 和 IntentServer 模型之间保持角色名称尽可能相似。这个角色是在 Qt 6.6 版本中引入的。

信号文档

disambiguationRequest(uuid requestId, list<Intent> potentialIntents, var parameters)

IntentServer 收到可能由多个应用程序处理的意图请求时,会发出此信号。

注意:只有当有接收器连接时才会发出此信号。如果没有连接信号,则从潜在匹配列表中选择任意应用程序来处理此请求。

此信号的接收器获取请求的 requestId 和其 parameters。然后,它既可以调用 acknowledgeDisambiguationRequest() 来选择其中一个 potentialIntents,也可以调用 rejectDisambiguationRequest() 来完全拒绝意图请求。在这两种情况下,需要发送唯一的 requestId 来识别意图请求。

不调用这两个函数之一会导致内存泄漏。

注意:相应的处理器是 onDisambiguationRequest

另请参阅:IntentClient::sendIntentRequest


intentAboutToBeRemoved(Intent intent)

当现有 intent 即将从 intentList 中删除时(例如,在应用程序卸载时)被发出。

注意:相应的处理器是 onIntentAboutToBeRemoved


intentAdded(Intent intent)

当新的 intent 被添加到 intentList 中时(例如,在应用程序安装时)发出。

注意:相应的处理器是 onIntentAdded


方法文档

acknowledgeDisambiguationRequest(uuid requestId, Intent selectedIntent)

告诉 IntentServerrequestId 识别的发送者的意图请求继续进行。所选的 selectedIntent 必须是提供给 disambiguationRequest 信号接收器的 potentialIntents 之一。

另请参阅:IntentClient::sendIntentRequest


IntentObject applicationIntent(string intentId, string applicationId, var parameters)

返回相应的 intent,该意图对应于给定的 intentIdapplicationIdparametersnull(如果id不存在)。

此方法公开了内部用于匹配由 intentId 标识的意图请求以及针对由 applicationId 标识的应用程序所用的相同功能。虽然您可以在 JavaScript 中自己迭代 intentList,但此函数的额外优势是还可以将可选提供的 parameters 与任何给定的 参数匹配 进行比较。

注意: 返回的 Intent 对象的所有权属于应用管理器。如果您想存储此指针,可以使用 IntentServerQAbstractListModel 信号或 intentAboutToBeRemoved 信号来通知如果在 C++ 端即将删除对象。


object get(int index)

将模型数据检索到 index 作为 JavaScript 对象。请参阅 角色名称 了解预期的对象字段。

如果指定的 index 无效,则返回空对象。

注意: 如果只想从 QML 访问单个属性,这非常低效;请使用 intent() 直接访问 Intent 对象的属性。


int indexOfIntent(IntentObject intent)

intent 映射到此模型内的位置。如果指定的意图无效,则返回 -1

另请参阅 intent()。


int indexOfIntent(string intentId, string applicationId, var parameters)

将对应于给定的 intentIdapplicationIdparameters 的意图映射到此模型内的位置。如果指定的意图无效,则返回 -1

另请参阅 intent()。


IntentObject intent(int index)

返回模型中给定 indexintent,如果索引无效,则返回 null

注意: 返回的 Intent 对象的所有权属于应用管理器。如果您想存储此指针,可以使用 IntentServerQAbstractListModel 信号或 intentAboutToBeRemoved 信号来通知如果在 C++ 端即将删除对象。


IntentObject packageIntent(string intentId, string packageId, var parameters)

返回对应于给定的 intentIdpackageIdparametersintent,如果 id 不存在,则返回 null

另请参阅 applicationIntent


IntentObject packageIntent(string intentId, string packageId, string applicationId, var parameters)

返回与给定的intentIdpackageIdapplicationIdparameters对应的intent,或如果该ID不存在,则返回null

另请参阅 applicationIntent


rejectDisambiguationRequest(uuid requestId)

Tells the IntentServer to ignore the sender's intent request identified by requestId. The original sender will get an error reply back in this case.

另请参阅:IntentClient::sendIntentRequest


© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.