C

AndroidBroadcastReceiver QML 类型

允许接收广播并通过自定义Intent 过滤器进行过滤。更多...

导入声明import QtAndroidAutomotive.Base
QtAndroidAutomotive 6.5

属性

方法

详细描述

AndroidBroadcastReceiver 可以用来接收广播并通过自定义 Intent 过滤器进行过滤。以下是一个小示例,它监听特定的动作并提取在键 "data" 下的 extras 属性中存储的数据

AndroidBroadcastReceiver {
    id: receiver
    AndroidIntentFilter {
        actions: [
            "ACTION_SEND_STORY"
        ]
        dataAuthorities: [
            {
                host: "com.qt.story"
            }
        ]
        dataPaths: [
            {
                pattern: "/story",
                matchType: AndroidMatchPattern.PATTERN_LITERAL
            }
        ]
        dataSchemes: [
            "content"
        ]
    }

    onReceived: function(intent) {
        if (intent.extras.hasOwnProperty("storytext")) {
            console.log("Received story:", intent.extras.storytext)
        }
    }
}

AndroidBroadcastReceiver 存活在 UI 线程中,因此当 UI 线程处于挂起状态时(意味着应用不在前台),它不会处理接收到的广播。相反,新的广播将被放在事件队列中,一旦 UI 线程恢复,就会进行处理。如果您只需要在应用处于前台时接收广播,建议在应用即将挂起时调用 stop()。当应用再次激活时,可以通过 start() 重新启动广播接收。

以下是如何跟踪应用状态并在其变化时启动/停止 AndroidBroadcastReceiver 的示例

AndroidBroadcastReceiver {
    running: Application.state === Qt.ApplicationActive

    AndroidIntentFilter {

    }
}

属性文档

running : bool

此属性持有了接收器的状态。如果此接收器正在运行,它将返回 true,否则返回 false


方法文档

bool start()

启动接收器。一旦运行,它将变得活跃并开始接收广播,直到停止。

如果成功,返回 true,否则返回 false


bool stop()

停止接收器。此接收器将不再接收广播,直到再次启动。

如果成功,返回 true,否则返回 false


在特定的 Qt 许可证下提供。
了解更多信息。