画面ロックを回避


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 を入れておかないと、デザインモードで次の例外が発生してしまいます。

image

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 のアイドル検出 を参照してください。

ApplicationIdleDetectionMode

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。