如您所知,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