Класс Applications
(Sailfish::Mdm::Applications)
Класс Applications предоставляет информацию об установленных приложениях и пакетах. Подробнее…
Заголовочный файл: | #include <mdm-applications.h> |
Публичные типы
- enum PackageFilter
- enum PackageKitOperation { InstallFromRepos, InstallFromFiles, Remove }
Публичные методы
- Applications(QObject *parent = 0)
- virtual ~Applications()
- ApplicationEntry getInstalledApplicationInfo(uint uid = 0, QString appName = "")
- QList<ApplicationEntry> getInstalledApplications()
- QList<ApplicationEntry> getInstalledApplications(uint uid)
- QList<PackageEntry> getInstalledPackages()
- bool grantPermissions(uint uid, bool always, const QString &application)
- ApplicationOperation *installPackage(const QString &package, const QString &version = QString())
- ApplicationOperation *installPackages(const QStringList &packages, const QMap<QString, QString> &versions)
- ApplicationOperation *removePackage(const QString &package, bool autoremove)
Сигналы
- void operationAborted(const PackageKitOperation op, const QString error)
- void operationSucceeded(const PackageKitOperation op)
Подробное описание
Класс Applications предоставляет информацию об установленных приложениях и пакетах.
Для использования данного класса в qmake-настройки проекта клиента следует добавить следующее:
CONFIG += link_pkgconfig
PKGCONFIG += sailfishmdm
и затем #include <mdm-applications.h>
.
Пример использования:
#include <mdm-applications.h>
void printApplications()
{
QList<Sailfish::Mdm::ApplicationEntry> apps = Sailfish::Mdm::Applications().getInstalledApplications();
foreach (const Sailfish::Mdm::ApplicationEntry &entry, apps) {
Sailfish::Mdm::PackageEntry package = entry.package();
qInfo() << "Название приложения:" << entry.name();
qInfo() << "Из пакета:"
<< (package.name().isEmpty() ? QStringLiteral("(none)")
: QString("%1-%2").arg(package.name()).arg(package.version()));
qInfo() << QStringLiteral("--------");
}
}
void installPackage(const QString &pkgname)
{
Sailfish::Mdm::Applications *mdmApplications = new Sailfish::Mdm::Applications();
QObject::connect(mdmApplications->installPackage(pkgname),
&Sailfish::Mdm::ApplicationOperation::finished,
[mdmApplication](Sailfish::Mdm::ApplicationOperation *operation) {
mdmApplications->deleteLater();
qInfo() << "Установка:" << operation->package()
<< (operation->isSucceeded() ? "успешна" : "провалилась");
});
}
Описание типов класса
enum Applications::PackageFilter
enum Applications::PackageKitOperation
Описание методов класса
Applications::Applications(QObject *parent = 0)
Конструктор по умолчанию для класса Applications.
[virtual] Applications::~Applications()
Деструктор для класса Applications. Деструктор является виртуальным.
ApplicationEntry Applications::getInstalledApplicationInfo(uint uid = 0, QString appName = "")
Возвращает информацию об указанном приложении, включая список предоставленных разрешений для указанного идентификатора пользователя.
QList<ApplicationEntry> Applications::getInstalledApplications()
Возвращает список записей об установленных на устройстве приложениях.
QList<ApplicationEntry> Applications::getInstalledApplications(uint uid)
Возвращает список приложений, установленных на устройстве, с предоставленными разрешениями для указанного идентификатора пользователя.
QList<PackageEntry> Applications::getInstalledPackages()
Возвращает список записей об установленных на устройстве пакетах.
bool Applications::grantPermissions(uint uid, bool always, const QString &application)
Чтобы немедленно предоставить права активному пользователю, необходимо убедиться, что uid установлен на UID активного пользователя или на 0.
Разрешения будут предоставлены только пользователю с указанным uid и только для текущего набора разрешений application.
Если always установлено в true, права будут предоставлены всем существующим пользователям.
Возвращает true
, если разрешения были предоставлены, в противном случае возвращает false
с
сообщением предупреждения.
ApplicationOperation *Applications::installPackage(const QString &package, const QString &version = QString())
Устанавливается пакет package с версией version из системных RPM-репозиториев или по абсолютному пути.
См. также ApplicationOperation::finished, ApplicationOperation::failed и ApplicationOperation::succeeded.
ApplicationOperation *Applications::installPackages(const QStringList &packages, const QMap<QString, QString> &versions)
Устанавливает указанные packages с указанными versions из репозиториев RPM системы или по абсолютному пути.
См. также ApplicationOperation::finished, ApplicationOperation::failed и ApplicationOperation::succeeded.
[signal] void Applications::operationAborted(const PackageKitOperation op, const QString error)
[signal] void Applications::operationSucceeded(const PackageKitOperation op)
ApplicationOperation *Applications::removePackage(const QString &package, bool autoremove)
Удаляет установленный RPM-пакет.
Если значением параметра autoremove является true, метод также предлагает удалить зависимости, установленные вместе с пакетом package, если они не используются другими компонентами.
См. также ApplicationOperation::finished, ApplicationOperation::failed и ApplicationOperation::succeeded.