如何在单元测试期间打开屏幕?

问题描述 投票:5回答:2

我在测试活动时对真实设备运行单元测试时遇到了一个小问题。

问题是当屏幕未打开时它们会失败。

这个问题有优雅的解决方案吗?除了稍微向右移动我的手臂并自行按下电源按钮。我对WakeLock或其他任何可以进入主应用程序的代码不感兴趣。

android junit
2个回答
3
投票

Settings|Applications|Development|Stay Awake可以帮助(那是在电话上)?它禁用手机屏幕进入睡眠状态


3
投票

实际上很简单。我所要做的就是在getWindow上打电话给Activity并带上一些标志来打开屏幕并解锁键盘。

public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> {

    private MyActivity mActivity;

    public MyActivityTest() {
        super("com.example.app", MyActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        mActivity = getActivity();
    }

    public void testMyActivity() throws InterruptedException {
        mActivity.runOnUiThread(
                new Runnable() {
                    public void run() {
                        mActivity.getWindow().addFlags(
                                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
                                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
                    }
                }
                );
        // Start testing 
        ....
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.