C
交互式通知列表
使用Qt Android Notifications Listener QML API创建交互式通知列表。
此示例演示了如何使用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。该模型可以与需要时使用的ListView或GridView一起使用。
在此示例中,使用了一个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许可证。
了解更多。