D-Bus интерфейс ru.omp.AuthService.Devlock
Интерфейс позволяет заблокировать экран или отследить подобную блокировку. Подробнее…
Шина: | системная |
Служба: | ru.omp.AuthService |
Объект: | /ru/omp/AuthService/Devlock |
Интерфейс: | ru.omp.AuthService.Devlock |
Сигналы
- StateChanged(int state)
Методы
Подробное описание
Интерфейс позволяет заблокировать экран или отследить подобную блокировку.
Описание сигналов
StateChanged(int state)
Испускается при изменении состояния AuthService
.
Возможные значения приведены в таблице:
Опция | Описание |
---|---|
Unlocked |
Экран устройства разблокирован. |
Locked |
Экран устройства заблокирован. |
SecurityUi |
Экран заблокирован для подтверждения или смены данных пользователя. Его можно скрыть, нажав кнопку «Отмена». |
Описание методов
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;
}