Определить, если пользователь бездействует в универсальном приложении Windows

Я занимаюсь разработкой библиотеки классов для универсальных приложений Windows 10 (только семейства мобильных и настольных устройств). Мне нужно вызвать событие, если пользователь простаивал (без прикосновения, перемещения мыши, нажатия клавиши и т. Д.) В течение x секунд. Этот метод может быть использован для решения этой проблемы на Android. Но я не мог найти решение для Windows UWP.

Есть ли в UWP API для этого?

2 ответа

Решение

Вы можете обнаружить глобальный ввод с различными событиями в CoreWindow приложения:

Сенсорный ввод и ввод с помощью CoreWindow.PointerPressed, PointerMoved и PointerReleased.

Ввод с клавиатуры: KeyUp и KeyDown (программные клавиши) и CharacterReceived (для символов, созданных с помощью аккордов и текстовых подсказок)

Используйте их, чтобы обнаружить, что пользователь активен и простаивает, если он продолжается слишком долго без какого-либо из этих событий.

Я знаю, что это действительно старый вопрос, но я думаю, что теперь вы можете получить тот же результат с помощью RegisterBackgroundTask ( https://docs.microsoft.com/en-us/windows/uwp/launch-resume/register-a-background-task ) Просто установите

new TimeTrigger (15, false) // Для триггера времени

https://docs.microsoft.com/en-us/windows/uwp/launch-resume/run-a-background-task-on-a-timer-

new SystemCondition(SystemConditionType.UserNotPresent)) // Итак, вы хотите знать, что пользователя нет

https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.background.systemconditiontype?view=winrt-20348

Другие вопросы по тегам