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;
}