C

AndroidNotificationListener QML 类型

允许监听 Android 设备上发布的通知。 更多信息...

导入声明import QtAndroidAutomotive.Base
Qt 6.4

属性

信号

方法

详细描述

AndroidNotificationListener 允许监听 Android 设备上发布的通知。它使用 Android 的 NotificationListenerService 来接收有关已发布或删除的通知的信息。

注意:它是一个单例,因此您不需要在 qml 代码中声明它。

通知监听器已知问题和限制

检查是否授予了对通知的访问权限需要 Android API 27 或更高版本才能正常工作。

属性文档

connected : bool

此属性表示监听器是否连接到 Android 的通知服务并准备使用。

注意:由于Android通知监听器的底层实现,在监听器成功连接之前,唯一可用的功能是 start(). 在此属性保持 false 时使用其他功能不会产生预期行为。因此,建议在尝试访问其他功能之前检查此属性是否为 true

另请参阅 notificationAccess


notificationAccess : bool

此属性表示是否已授予监听通知的访问权限。如果已授权访问,则保留 true,如果没有,则保留 false

注意:由于使用了底层Android API,此属性只能在使用的Android API级别为27(Android 8.1)或更高时显示通知访问。如果使用较低的API级别,则该属性始终为 true,这意味着 AndroidNotificationListener 不会自行处理访问请求。相反,您需要自行处理访问请求,例如通过调用 requestNotificationAccess ()。


notificationsModel : QAbstractListModel [since 6.4]

此属性保留Android设备上活动通知的模型。模型基于 QAbstractListModel,并管理包含以下元素的列表:

角色类型
有效bool
notificationIdint
keystring
packageNamestring
clearablebool
titlestring
contentstring
iconSmallstring
iconLargestring
postTimeDate
visibility枚举
actionsArray

每个 action 具有以下属性

属性类型
titlestring
iconstring

按照以下方式使用模型

    ListView {
        id: listView

        anchors.fill: parent

        model: AndroidNotificationListener.notificationsModel

        delegate: NotificationDelegate {
            width: listView.width
        }

    }

要使用通知图标在 Image 中,请使用以下方式

Image {
    id: notificationIcon
    source: model.iconSmall
}

要使用动作属性

        RowLayout {
            id: actionsLayout

            Layout.leftMargin: iconItem.width + 12

            Repeater {
                id: actionsModel
                model: root.actions
                delegate: Button {
                    text: root.actions[index].title
                    icon.source: root.actions[index].icon
                    onClicked: root.actions[index].performAction()
                }
            }
        }

此属性是在Qt 6.4中引入的。


信号文档

notificationPosted(string key)

当新通知已发布且具有给定 key 时发出此信号。

注意:对应处理器是 onNotificationPosted


notificationRemoved(string key)

当具有给定 key 的通知被删除时发出此信号。

注意:对应处理器是 onNotificationRemoved


方法文档

void dismissNotification(string key)

如果当前有一个活动通知,并且是可清除的,则 dismisses 给定的 key 的通知。


void launchContentIntent(string key)

将匹配的 key 的通知的 contentIntent 发送出去。如果通知没有有效的 contentIntent,则调用此函数不会产生效果。


void requestNotificationAccess()

打开设置视图以授权访问通知。


void snoozeNotification(string key, int duration)

使用匹配的 和毫秒数 持续时间 使通知进入睡眠状态。这将导致睡眠状态的通知被移除,并在 持续时间 过去后再次发布。在这些时间,将与正常移除或发布通知时一样,发出 notificationRemoved(string key) 和 notificationPosted(string key) 信号。


void start()

请求启动并绑定通知监听服务。如果尚未授予通知访问权限,则绑定服务将失败。如果调用此方法且尚未授予访问权限,将打开 应用通知访问设置视图

通常,只有在调用 stop() 方法或尚未授予通知访问权限时才需要调用此方法。Android 将在没有调用此方法的情况下启动服务,但前提是已授予访问权限。

另请参阅 stop()。


void stop()

停止监听通知,解除绑定服务。

另请参阅 start()。


根据某些 Qt 许可证可用。
了解更多。