Класс Applications
(Sailfish::Mdm::Applications)
Класс Applications предоставляет информацию об установленных приложениях и пакетах. Подробнее…
| Заголовочный файл: | #include <mdm-applications.h> |
Публичные типы
- enum PackageKitOperation { InstallFromRepos, InstallFromFiles, Remove }
Публичные методы
- Applications(QObject *parent = 0)
- virtual ~Applications()
- QStringList getAllowlist(uint uid)
- bool getAllowlistEnabled(uint uid)
- 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)
- ApplicationOperation *removePackages(const QStringList &packages, bool autoremove)
- bool setAllowlist(uint uid, const QStringList &applications)
- bool setAllowlistEnabled(uint uid, bool enabled)
Сигналы
- 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::PackageKitOperation
Описывает тип операции, выполненной над пакетом(ами).
| Константа | Значение | Описание |
|---|---|---|
Sailfish::Mdm::Applications::InstallFromRepos |
0 |
Установка пакета из удаленного репозитория. |
Sailfish::Mdm::Applications::InstallFromFiles |
1 |
Установка пакета из локальных файлов. |
Sailfish::Mdm::Applications::Remove |
2 |
Удаление пакета. |
Описание методов класса
Applications::Applications(QObject *parent = 0)
Конструктор по умолчанию для класса Applications.
[virtual] Applications::~Applications()
Деструктор для класса Applications. Деструктор является виртуальным.
QStringList Applications::getAllowlist(uint uid)
Получает белый список приложений для пользователя с указанным uid или для активного пользователя, если uid равен 0.
Возвращает список приложений.
bool Applications::getAllowlistEnabled(uint uid)
Получает статус активности (enabled) белого списка для пользователя с указанным uid или для
активного пользователя, если uid равен 0.
Возвращает true, если белый список включён, false — если выключен. В случае ошибки возвращает
false с предупреждающим сообщением.
ApplicationEntry Applications::getInstalledApplicationInfo(uint uid = 0, QString appName = "")
Возвращает информацию об указанном приложении, включая список предоставленных разрешений для указанного идентификатора пользователя. Параметр appName содержит название приложения. Параметр uid содержит идентификатор пользователя (ID).
QList<ApplicationEntry> Applications::getInstalledApplications()
Возвращает список записей об установленных на устройстве приложениях.
QList<ApplicationEntry> Applications::getInstalledApplications(uint uid)
Возвращает список приложений, установленных на устройстве, с предоставленными разрешениями для указанного идентификатора пользователя. Параметр uid содержит идентификатор пользователя (ID)
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)
Этот сигнал испускается, когда какому-то пакету не удалось выполнить операцию op. В error содержится описание произошедшей ошибки.
[signal] void Applications::operationSucceeded(const PackageKitOperation op)
Этот сигнал испускается, когда некоторый пакет успешно выполнил операцию op.
ApplicationOperation *Applications::removePackage(const QString &package, bool autoremove)
Удаляет установленный RPM-пакет.
Если значением параметра autoremove является true, метод также предлагает удалить зависимости,
установленные вместе с пакетом package, если они не используются другими компонентами.
См. также ApplicationOperation::finished, ApplicationOperation::failed и ApplicationOperation::succeeded.
ApplicationOperation *Applications::removePackages(const QStringList &packages, bool autoremove)
Удаляет установленные RPM-пакеты.
Если autoremove имеет значение true, система предложит удалить зависимости, которые были
установлены для packages и больше не используются другими компонентами.
См. также ApplicationOperation::finished, ApplicationOperation::failed и ApplicationOperation::succeeded.
bool Applications::setAllowlist(uint uid, const QStringList &applications)
Устанавливает белый список приложений applications для пользователя с указанным uid или для активного пользователя, если uid равен 0.
Возвращает true, если белый список был успешно установлен, иначе — false с предупреждающим
сообщением.
bool Applications::setAllowlistEnabled(uint uid, bool enabled)
Устанавливает статус активности (enabled) белого списка для пользователя с указанным uid или
для активного пользователя, если uid равен 0. Параметр enabled содержит новый статус.
Возвращает true, если был установлен статус белого списка, в противном случае возвращает false с
предупреждающим сообщением.