如您所知,android在android n中提供了Multi-Window support mode。我们的应用程序具有多窗口支持。
但是如何测试呢?如何强制测试在该模式下运行应用程序?我还没有在Instrumentation
课程或其他任何文档中建立任何此类方法。也许这是可能的Espresso?在多窗口模式下运行强制仪表活动
2
A
回答
2
不幸的是,provided by azizbekian需要一个以前在多窗口模式下加载的应用程序,所以我想提供自己的解决方案。在answer我发现了如何以编程方式进入多窗口模式。使用它,我建立了完整的解决方案:
UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
//enter multi-window mode
uiAutomation.performGlobalAction(AccessibilityService.GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN);
//wait for completion, unfortunately waitForIdle doesn't applicable here
Thread.sleep(1000);
//simulate selection of our activity
MotionEvent motionDown = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), KeyEvent.ACTION_DOWN,
150, 200, 0);
motionDown.setSource(InputDevice.SOURCE_TOUCHSCREEN);
uiAutomation.injectInputEvent(motionDown, true);
motionDown.recycle();
MotionEvent motionUp = MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), KeyEvent.ACTION_UP,
150, 200, 0);
motionUp.setSource(InputDevice.SOURCE_TOUCHSCREEN);
uiAutomation.injectInputEvent(motionUp, true);
motionUp.recycle();
//perform test actions below
正如你所看到的,有两种解决方法:
- 我们不能用
uiAutomation.waitForIdle
等待进入多模完成 - 我的天堂” t找到了一种在任务管理器中选择应用程序以请求关注我们的活动的方法。所以我只是对我们活动的可能位置进行一些触摸事件。
实现它之后,你就可以
3
从Launch New Activities in Multi-Window Mode:
当您启动一个新的活动,你可以暗示,新的活动应尽可能相邻显示当前的系统。为此,请使用意向标记FLAG_ACTIVITY_LAUNCH_ADJACENT。
从Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT文档:
该标志仅在分屏多窗口模式下使用。新活动将显示在启动该活动的旁边。这只能与FLAG_ACTIVITY_NEW_TASK一起使用。另外,如果您希望创建现有活动的新实例,则需要设置FLAG_ACTIVITY_MULTIPLE_TASK。
如图here如何在测试开始的活动:
@Test
public void customIntentToStartActivity() {
Intent intent = new Intent(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT)
| Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity = mActivityRule.launchActivity(intent);
}
注意,这是我基于文档的猜测,还没有尝试过。虽然,在我看来,您必须先启动一个“假”活动,然后从此处开始在多窗口模式下测试活动,因为“新活动将显示在旁边” ,所以应该有另一个活动,以指定的Intent
标志启动它。
+0
由于测试活动像往常一样与咖啡等等,我来试试, – Beloo
相关问题
- 1. 在窗口Kiosk模式下运行Chrome
- 2. Win32强制窗口模式在进程
- 3. 强制活动在Android 1.5中运行风景中的活动
- 4. 当窗口用户切换活动窗口时运行程序
- 5. 多窗口活动 - Jquery的
- 6. 如何禁用Android中的活动的多窗口模式N +
- 7. 进行下一个活动时,活动已泄漏窗口
- 8. 强制模式窗体在任务栏
- 9. 在多端口后端群模式下运行traekif
- 10. 在多主模式下运行Kubernetes
- 11. 将活动上下文强制转换为接口抛出ClassCastException
- 12. eclipse在“运行配置”窗口中未显示活动设备
- 13. 强制页面模式弹出窗口隐藏文件下载(ASP.NET C#)
- 14. 页没有在窗口模式下
- 15. 如何使用多窗口模式在android中显示两个活动?
- 16. 在运行模块内嘲笑$窗口
- 17. 配置活动:窗口小部件只在从Eclipse重新运行后运行
- 18. 在无模式模式下运行solr
- 19. 德尔福 - 在设计模式下移动运行时控制
- 20. 启动窗口快捷方式自动以最小化模式运行
- 21. 强制窗口大小Kivy
- 22. 如何强制窗口
- 23. 强制窗口高度,javascript
- 24. 强制窗口前/聚焦?
- 25. C# - 获取活动窗口下的窗口句柄?
- 26. 将下一个窗口设置为活动窗口(ALT + TAB)
- 27. Bootstrap v3 - 打开模式窗口强制页面滚动到顶部
- 28. 在全屏模式下控制WPF窗口
- 29. HTTP失败:java.io.IOException:在多窗口模式下取消
- 30. 可能将激活的Microsoft Word窗口强制转换为WPF窗口?
我想你应该不选择我的答案和标记你的正确和完整的回答。 – azizbekian
@azizbekian好,但无论如何感谢 – Beloo