C

AndroidAppsUtils QML 类型

Qt 对 Android Apps Utils 的包装器。 更多...

导入声明import QtAndroidAutomotive.Base

属性

方法

详细描述

AndroidAppsUtils 允许访问 Android API,以操作应用程序,如启动、卸载以及获取名称和图标。

属性文档

installedAppsModel : model

此属性保存 Android 设备上已安装应用程序的模型。该模型基于 QAbstractListModel,并管理从 Android Drawable 对应方检索到的包含应用程序名称、包名称和图标的元素列表。

以下是一个使用此模型的示例

ListView {
    id: listView
    clip: true
    flickableDirection: Flickable.VerticalFlick

    model: AndroidAppsUtils.installedAppsModel
    delegate: Rectangle {
        id: delegate
        height: window.height * 0.05
        width: ListView.view.width

        Row {
            Text {
                id: appName
                text: model.appName + " " + model.packageName
            }
        }
    }
}

要在 Image 中使用应用程序的图标,请使用以下内容

Image {
    id: appIcon
    source: model.AppIconString
}

方法文档

[自 QtAndroidAutomotive 6.5] int appUid(string packageName)

返回由 packageName 指定的包的 UID 或者在指定的包无法找到的情况下返回 -1

Button {
    id: uidButton
    onClicked: {
        const uid = AndroidAppsUtils.appUid("org.qtproject.example.name")
        console.log("User ID:", uid)
    }
}

此方法是在 QtAndroidAutomotive 6.5 中引入的。


bool hasNotificationAccess(string notificationListenerServiceName)

检查通知监听服务《notificationListenerServiceName》是否具有通知访问权限。如果访问权限被授予,则返回true,否则返回false

notificationListenerServiceName》需要是你定义在AndroidManifest文件中的通知监听服务类的全名。有关更多信息,请参阅Android: NotificationListenerService

通知访问权限需要用户从通知访问设置视图进行授予。要打开该视图,您可以执行以下操作

Component.onCompleted: {
    if (!AndroidAppsUtils.hasNotificationAccess("com.example.mynotificationlistenerservice")) {
        AndroidAppsUtils.startActivityWithAction(
                            "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS")
    }
}

另请参阅AndroidAppsUtils::startActivityWithAction(string action)。


bool showAppInfo(string packageName)

显示与所提供的packageName关联的应用的程序的信息设置视图。如果找到并启动了应用程序活动,则返回true,否则返回false

    Button {
        id: startButton
        onClicked: AndroidAppsUtils.showAppInfo("org.qtproject.example.name")
}

bool startActivityWithAction(string action)

启动与给定的action关联的活动。有关更多信息,请参阅Android: Building an Intent。如果找到并启动应用程序活动,则返回true,否则返回false

例如,要打开蓝牙设置视图,您可以使用以下代码

Button {
    id: startButton
    text: qsTr("Open Bluetooth Settings")
    onClicked: AndroidAppsUtils.startActivityWithAction("android.settings.BLUETOOTH_SETTINGS")
}

bool startApp(string packageName)

启动与提供的packageName关联的应用程序。如果找到并启动应用程序活动,则返回true,否则返回false

Button {
    id: startButton
    onClicked: AndroidAppsUtils.startApp("org.qtproject.example.name")
}

[since QtAndroidAutomotive 6.5] bool startAppOnScreen(string packageName, const QQuickScreenInfo *screenInfo)

在标识为screenInfo的屏幕上启动与提供的packageName关联的应用程序。

如果已启动应用程序,则返回true,否则返回false

Button {
    id: startButton
    onClicked: AndroidAppsUtils.startAppOnScreen("org.qtproject.example.name",
                                                 Application.screens[0])
}

此方法是在 QtAndroidAutomotive 6.5 中引入的。

另请参阅Application.screens


[since QtAndroidAutomotive 6.5] bool startAppOnScreenById(string packageName, int displayId)

在标识为displayId的屏幕上启动与提供的packageName关联的应用程序。

如果已启动应用程序,则返回true,否则返回false

Button {
    id: startButton
    onClicked: AndroidAppsUtils.startAppOnScreenById("org.qtproject.example.name", 0)
}

此方法是在 QtAndroidAutomotive 6.5 中引入的。

另请参阅Application.screens


bool uninstallApp(string packageName)

请求卸载与提供的packageName关联的应用程序的卸载对话框。如果找到并启动应用程序活动,则返回true,否则返回false

    Button {
        id: startButton
        onClicked: AndroidAppsUtils.uninstallApp("org.qtproject.example.name")
}

在特定的Qt许可下可用。
了解更多信息。