酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

WindowsストアアプリでDisplayRequestクラスを使ってスクリーンセーバー/スリープへ突入するのを阻止する

ファイル保存中やカメラデバイス使用中などスリープしてほしくない場合、Windows.System.Display名前空間のDisplayRequestクラスを使ってスリープ突入を抑止することが可能です。

画面突入時に、DisplayRequestクラスのインスタンスを生成して、RequestActiveメソッドでディスプレイの状態をアクティブに保つように要求します。

DisplayRequest _displayRequest = null;

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    if (_displayRequest == null)
    {
        _displayRequest = new DisplayRequest();
    }
    try
    {
        _displayRequest.RequestActive();
    }
    catch
    {
        
    }
}

カメラ画面から脱出する時に、突入時に生成したDisplayRequestオブジェクトを使って、RequestReleaseメソッドで解放する必要があります。

protected override async void OnNavigatedFrom(NavigationEventArgs e)
{
    try
    {
        _displayRequest.RequestRelease();
    }
    catch
    {
    }
}