Можно ли предотвратить тайм-аут экрана на Windows Phone 7? - PullRequest
4 голосов
/ 13 октября 2010

В Windows Mobile на базе CE вы можете предотвратить тайм-аут подсветки экрана, используя SetPowerRequirement и ReleasePowerRequirement API, например:

IntPtr handle = SetPowerRequirement("BKL1:", PowerState.FULL, 1, IntPtr.Zero, 0);
// screen won't timeout while you do stuff in here
ReleasePowerREquirement(handle);

Возможно ли подобное на WP7?

1 Ответ

11 голосов
/ 13 октября 2010

Да, это возможно.Вы можете использовать PhoneApplicationService.Current.UserIdleDetectionMode, чтобы остановить тайм-аут подсветки экрана и заблокировать экран.

Вы также можете использовать PhoneApplicationService.Current.ApplicationIdleDetectionMode, чтобы приложение продолжало работать под экраном блокировки.

Вот еще несколько подробностей об этих двух параметрах:

UserIdleDetectionMode

Отключение этого параметра остановит тайм-аут и блокировку экрана.Например, я отключаю UserIdleDetectionMode при загрузке большого файла, чтобы приложение не прерывало загрузку на полпути.

Когда загрузка завершена, я снова включаю UserIdleDetectionMode, чтобы экран мог работать как обычно.

ApplicationIdleDetectionMode

Примечание: Это одноразовый удар.Вы можете отключить его, но не можете снова включить.

Если вы отключите ApplicationIdleDetectionMode, ваше приложение продолжит работу после блокировки экрана.Ваше приложение все равно умрет, если пользователь запустит другое приложение.

Требования сертификации требуют, чтобы вы запрашивали у пользователя при первом отключении ApplicationIdleDetectionMode.Например, "Это приложение будет продолжать работать под заблокированным экраном и может разрядить аккумулятор. С вами все в порядке?"Если вы этого не сделаете, ваше приложение будет отклонено.

...