6

問題私の Android の自動テストは信頼できません。

原因Android デバイス (Samsung Galaxy S2) のロック画面がオンになっていると、すべてのアクティビティがすぐに一時停止モードになります。

テストの実行中にロック画面をプログラムで無効にするにはどうすればよいですか?

これが私が試したもので、まったく結果が得られませんでした(つまり、ロック画面がまだアクティブで、アクティビティを一時停止しています)。

  • Android docで説明されているように、android.permission.DISABLE_KEYGUARDアクセス許可を追加して使用します。KeyguardLock.disableKeyguard()

  • ウィンドウ フラグを設定します: FLAG_SHOW_WHEN_LOCKED、FLAG_TURN_SCREEN_ON、FLAG_DISMISS_KEYGUARD。

  • 、、およびパラメータWakeLock.acquire()とともに使用します。PowerManager.FULL_WAKE_LOCKPowerManager.ACQUIRE_CAUSES_WAKEUPPowerManager.ON_AFTER_RELEASEPowerManager.SCREEN_BRIGHT_WAKE_LOCK

  • adb shell input keyevent 82

4

3 に答える 3

6

次のコードを使用して、ロック画面を無効にすることができます。アクティビティの oncreate にこのコードを含めます。

PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
                | PowerManager.ACQUIRE_CAUSES_WAKEUP
                | PowerManager.ON_AFTER_RELEASE, "INFO");
        wl.acquire();

KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
        kl = km.newKeyguardLock("name");
        kl.disableKeyguard();

マニフェストに許可を含める:

<uses-permission android:name="android.permission.WAKE_LOCK" />
 <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
于 2013-09-19T08:59:31.320 に答える