Документация
ОС Аврора 5.1.1

D-Bus интерфейс ru.omp.AuthService.Devlock

Интерфейс позволяет заблокировать экран или отследить подобную блокировку и предоставляет чтение текущего состояния блокировки, его изменение привилегированным процессом и сигнал об изменении состояния.

Область применения:

  • чтение текущего состояния блокировки — GetState;
  • изменение состояния блокировки процессом из группы auth-factor — SetState;
  • отслеживание смены состояния — сигнал StateChanged. Подробнее…
Шина: системная
Служба: ru.omp.AuthService
Объект: /ru/omp/AuthService/Devlock
Интерфейс: ru.omp.AuthService.Devlock

Сигналы

Методы

Подробное описание

Интерфейс позволяет заблокировать экран или отследить подобную блокировку. StateChanged используется для реакции на уже произошедшее изменение. GetState используется для получения актуального состояния при старте клиента. SetState используется привилегированными процессами для прямого изменения состояния.

Описание сигналов

StateChanged(int state)

Испускается при изменении состояния AuthService. Возможные значения приведены в таблице:

Опция Описание
Unlocked Экран устройства разблокирован.
Locked Экран устройства заблокирован.

Описание методов

int GetState()

Возвращает текущее состояние AuthService. Возможные значения те же, что и у сигнала StateChanged.

bool SetState(int state)

Изменяет текущее состояние AuthService. Данный метод требует наличия привилегий: владелец вызывающего процесса должен входить в группу auth-factor. Возможные значения те же, что и у сигнала StateChanged.

Пример блокировки экрана с помощью метода SetState:

const QString authdService = QStringLiteral("ru.omp.AuthService");
const QString authdDevlockPath = QStringLiteral("/ru/omp/AuthService/Devlock");
const QString authdDevlockInterface = QStringLiteral("ru.omp.AuthService.Devlock");
const QString setStateMethod = QStringLiteral("SetState");

//
// 0 — разблокирован (Unlocked)
// 1 — заблокирован (Locked)
//
const int32_t lockScreenValue = 1;

bool AuthdCommunicator::lockScreen()
{
    QDBusConnection sysBus = QDBusConnection::systemBus();
    if (!sysBus.isConnected())
        return false;

    QDBusMessage message = QDBusMessage::createMethodCall(authdService,
                                                          authdDevlockPath,
                                                          authdDevlockInterface,
                                                          setStateMethod);

    QVariantList args = {QVariant::fromValue<int32_t>(lockScreenValue)};
    message.setArguments(args);

    bool success = sysBus.send(message);

    qDebug() << __func__ << success;

    return true;
}

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования файлов cookies.