C

交互式通知列表

使用Qt Android Notifications Listener QML API创建交互式通知列表。

"Notifications List"

此示例演示了如何使用Qt Android Notifications Listener QML API在Android或Android Automotive设备上显示活动通知列表,并与它们进行交互。

当应用程序启动时,设备上的活动通知列表将显示在ListView中。当发布新的通知或删除旧的通知时,列表将更新。还可以通过不同的方式与通知进行交互:您可以忽略可清除的通知,并启动与通知提供的相关操作。

运行示例

要使用Qt Creator运行示例,请打开Qt Creator欢迎使用模式,并从示例中选择示例。有关更多信息,请参阅Qt Creator:教程:构建和运行

启用通知监听器

当应用程序启动时,如果尚未授权访问通知,则将打开Android设置页面的通知访问权限。要使用应用程序,请授予其访问通知的权限。

注意:如果您不授予应用程序访问权限,则它将不会接收到任何通知。

注意:由于使用的Android API,如果使用的API级别低于27(Android 8.1),则应用程序无法可靠地检查是否已授予访问权限。在这种情况下,它将始终评估授予权限,并且不会打开设置页面。在这种情况下,您可以通过以下路径导航到正确的设置页面并授予访问权限: 设置 -> 应用程序和通知 -> 特殊应用程序访问 -> 通知访问。

一旦授权被授予,应用程序将开始接收通知,并有权访问现有的通知。

使用模型

通知模型基于C++中的QAbstractListModel,并且已扩展到QML。该模型可以与需要时使用的ListViewGridView一起使用。

在此示例中,使用了一个ListView。模型按以下方式附加到视图:

    ListView {
        id: listView

        anchors.fill: parent

        model: AndroidNotificationListener.notificationsModel

然后,我们将列表的委托设置为使用自定义委托

        delegate: NotificationDelegate {
            width: listView.width
        }

最后,在完成ListView组件后,我们开始通知监听器

    Component.onCompleted: AndroidNotificationListener.start()

使用API调用

NotificationDelegate内部,我们可以与发布的通知进行交互。当委托项被点击时,如果提供了内容意图,它将调用通知的内容意图。

    onClicked: AndroidNotificationListener.launchContentIntent(root.key)

如果通知中提供了额外的操作,将为每个操作添加一个按钮,点击它将触发操作

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

并当滑动通知时,它将被取消

            function onCompleted() { AndroidNotificationListener.dismissNotification(root.key) }

另请参阅Qt for Android.

适用于某些Qt许可证。
了解更多。