UserIdleDetectionMode
画面ロックを回避するには、UserIdleDetectionMode をDisabledにします。しかし、ユーザーが電話を使用していない場合でもアプリケーションの実行を継続するため、バッテリの電力を消費し続けるので、注意が必要です。
これを Disabled にする場合、必ず前もってユーザーに本当にDisabled にしてもよいかどうかを確認することが推奨されています。
using Microsoft.Phone.Shell;
try
{
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
}
catch (Exception)
{
// This exception is expected in the current release.
}
try/catch を入れておかないと、デザインモードで次の例外が発生してしまいます。
System.NullReferenceException
オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 PhoneClassLibrary1.TimerControl.UserControl_Loaded(Object sender, RoutedEventArgs e) 場所 C:\Users\uchukamen\Desktop\Windows Phone\Timer\PhoneClassLibrary1\TimerControl.xaml.cs:行 27
場所 MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
場所 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)
似たようなプロパティで、ApplicationIdleDetectionMode がありますが、このプロパティは、もっと注意が必要です。これをDisabled にすると、Windows Phone がIdle となって、ロック状態になっても、アプリケーションはそれを検知しません。このため、アプリケーションは実行を継続するため、バッテリの電力を消費し続けるので、注意が必要です。さらに、一度 Disabled になると、Enabled に戻すことができません。Enabled に戻すには、PhoneApplicationFrame オブジェクトの初期化が必要です。この機能を実装するには、「Windows Phone 7 アプリケーションの認定要件」を満たす必要があります。また、ロック画面になっている間のアプリケーションの電力消費を抑えるために、Obscured イベント ハンドラーで、各種設定を行う必要があります。
詳細は、MSDN Windows Phone のアイドル検出 を参照してください。
コメントを残す