「Xamarin.Androidでディスプレイをスリープさせない」の版間の差分
ナビゲーションに移動
検索に移動
6行目: | 6行目: | ||
アクティビティに「WindowManagerFlags.KeepScreenOn」というフラグを設定すると一時的にディスプレイのスリープを抑制できる。この方法は権限が不要であり、アクティビティが遷移する際に自動的に解除される。[[MonoGame]]でもこの方法は有効である。 | アクティビティに「WindowManagerFlags.KeepScreenOn」というフラグを設定すると一時的にディスプレイのスリープを抑制できる。この方法は権限が不要であり、アクティビティが遷移する際に自動的に解除される。[[MonoGame]]でもこの方法は有効である。 | ||
<source lang=“csharp”> | <source lang=“csharp”> | ||
+ | public class Activity1 : AndroidGameActivity | ||
+ | { | ||
protected override void OnCreate(Bundle bundle) | protected override void OnCreate(Bundle bundle) | ||
{ | { | ||
13行目: | 15行目: | ||
this.Window.AddFlags(WindowManagerFlags.KeepScreenOn); | this.Window.AddFlags(WindowManagerFlags.KeepScreenOn); | ||
} | } | ||
+ | } | ||
</source> | </source> | ||
2016年3月31日 (木) 07:53時点における版
概要
無操作でもディスプレイをスリープさせたくない場面も多い。 たとえばMonoGameで作るAndroid向けのゲームなどである。
解決策:KeepScreenOn
アクティビティに「WindowManagerFlags.KeepScreenOn」というフラグを設定すると一時的にディスプレイのスリープを抑制できる。この方法は権限が不要であり、アクティビティが遷移する際に自動的に解除される。MonoGameでもこの方法は有効である。
public class Activity1 : AndroidGameActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// ディスプレイをスリープさせない
this.Window.AddFlags(WindowManagerFlags.KeepScreenOn);
}
}
解決策:wakelock
この方法は権限が必要であり、ひとたびディスプレイのスリープを抑制するとアクティビティが遷移しようが何をしようが明示的に解除しない限り延々と抑制される。あまりオススメできない。 よって省略する。