「.NET for Androidでディスプレイをスリープさせない」の版間の差分

編集の要約なし
編集の要約なし
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
無操作でもディスプレイをスリープさせたくない場面も多い。
無操作でもディスプレイをスリープさせたくない場面も多い。
たとえば[[MonoGame]]で作る[[Android]]向けの[[ゲーム]]などである。
たとえば[[MonoGame]]で作る[[Android]]向けの[[ゲーム]]などである。
== 環境 ==
* Xamarin.Android
* .NET for Android
Xamarin.Androidの頃から変わっていない。


== 解決策:KeepScreenOn ==
== 解決策:KeepScreenOn ==
8行目: 14行目:
* アクティビティが遷移する際に自動的に解除されます
* アクティビティが遷移する際に自動的に解除されます


<source lang=“csharp”>
<source lang=csharp>
public class MainActivity : Activity
public class MainActivity : Activity
{
{
22行目: 28行目:


[[MonoGame]]でもこの方法は有効です。
[[MonoGame]]でもこの方法は有効です。
<source lang=“csharp”>
<source lang=csharp>
public class Activity1 : AndroidGameActivity
public class Activity1 : AndroidGameActivity
{
{
40行目: 46行目:
当然のように素人にはオススメできない代物です。
当然のように素人にはオススメできない代物です。


; 必要な権限
* <uses-permission android:name="android.permission.WAKE_LOCK" />
; 大雑把なソース
どうしても使いたい場合はWakeLock利用中のあらゆる暴走をtry/catchして確実にReleaseしてください。
どうしても使いたい場合はWakeLock利用中のあらゆる暴走をtry/catchして確実にReleaseしてください。
[[メモリ不足]]などの「アプリ外の影響」「[[OS]]の暴走」も想定しましょう。
[[メモリ不足]]などの「アプリ外の影響」「[[OS]]の暴走」も想定しましょう。
<source lang=csharp>


<source lang="csharp">
PowerManager? _powerManager;
PowerManager? _powerManager;
PowerManager.WakeLock? _wakelock;
PowerManager.WakeLock? _wakelock;