C

QAndroidAppsUtils 类

辅助类,封装了管理 Android 应用的重要功能。 更多...

头文件 #include <QAndroidAppsUtils>
CMake find_package(Qt6 REQUIRED COMPONENTS AndroidAutomotiveBase)
target_link_libraries(mytarget PRIVATE Qt6::AndroidAutomotiveBase)
继承 QObject

信号

voidappInstalled(QtAndroidAppsUtils::QAppItem *appItem)
voidappUninstalled(QString packageName)

静态公共成员

(since QtAndroidAutomotive 6.5) intappUid(const QString &packageName)
boolhasNotificationAccess(const QString &notificationListenerServiceName)
QtAndroidAppsUtils::QAppsListModel *installedAppsModel()
QAndroidAppsUtils *instance()
boolshowAppInfo(const QString &packageName)
boolstartActivityWithAction(const QString &action)
boolstartApp(const QString &packageName)
(since QtAndroidAutomotive 6.5) boolstartAppOnScreen(const QString &packageName, const QScreen *screen)
(since QtAndroidAutomotive 6.5) boolstartAppOnScreen(const QString &packageName, int displayId)
booluninstallApp(const QString &packageName)

详细描述

成员函数文档

[signal] void QAndroidAppsUtils::appInstalled(QtAndroidAppsUtils::QAppItem *appItem)

当对应的 appItem 被安装时,会发出此信号。

[static, since QtAndroidAutomotive 6.5] int QAndroidAppsUtils::appUid(const QString &packageName)

返回由 packageName 指定的包的 UID,如果没有找到指定的包,则返回 -1

此函数自 QtAndroidAutomotive 6.5 引入。

[signal] void QAndroidAppsUtils::appUninstalled(QString packageName)

当具有相应 packageName 的应用被卸载时,会发出此信号。

[静态] bool QAndroidAppsUtils::hasNotificationAccess(const QString &notificationListenerServiceName)

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

notificationListenerServiceName 需要是您在 AndroidManifest 文件中定义的通知监听服务类的完整名称。更多信息,请参阅 Android: NotificationListenerService

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

if (!QAndroidAppsUtils::hasNotificationAccess("com.example.mynotificationlistenerservice")) {
    QAndroidAppsUtils::startActivityWithAction(
                        "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
}

另请参阅QAndroidAppsUtils::startActivityWithAction(const QString &action)。

[静态] QtAndroidAppsUtils::QAppsListModel *QAndroidAppsUtils::installedAppsModel()

返回一个基于 QAbstractListModel 的模型指针(所有权转让给调用方),该模型是用于已安装的 Android 应用。该模型管理包含应用名称、包名和图标的列表。

[静态] QAndroidAppsUtils *QAndroidAppsUtils::instance()

返回指向 QAndroidAppsUtils 实例的指针。

[静态] bool QAndroidAppsUtils::showAppInfo(const QString &packageName)

显示由 packageName 指定的包的应用信息设置视图。如果找到并启动了应用 Activity,则返回 true,如果没有找到,则返回 false

[静态] bool QAndroidAppsUtils::startActivityWithAction(const QString &action)

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

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

void openBluetoothSettings()
{
    QAndroidAppsUtils::startActivityWithAction("android.settings.BLUETOOTH_SETTINGS");
}

[静态,自从 QtAndroidAutomotive 6.5] bool QAndroidAppsUtils::startApp(const QString &packageName)

启动与给定包名 packageName 相关的应用。如果找到并启动了应用 Activity,则返回 true,如果没有找到,则返回 false

[静态,自从 QtAndroidAutomotive 6.5] bool QAndroidAppsUtils::startAppOnScreen(const QString &packageName, const QScreen *screen)

在由 QScreen 对象 screen 标识的 packageName 上启动应用。

如果找到并启动应用 Activity,则返回 true;如果没有找到或给定的屏幕无效,则返回 false

此函数自 QtAndroidAutomotive 6.5 引入。

[静态,自 QtAndroidAutomotive 6.5 版本起] bool QAndroidAppsUtils::startAppOnScreen(const QString &packageName, int displayId)

在由 displayId 标识的屏幕上启动与给定 packageName 关联的应用。

如果找到并启动应用 Activity,则返回 true;如果没有找到或给定的 displayId 无效,则返回 false

此函数自 QtAndroidAutomotive 6.5 引入。

[静态] bool QAndroidAppsUtils::uninstallApp(const QString &packageName)

请求卸载与给定包名 packageName 关联的应用的卸载对话框。如果找到并启动应用 Activity,则返回 true;如果没有找到,则返回 false

在某些 Qt 许可证下可用。
了解更多信息。