android - 模拟物理设备旋转
问题描述
我想模拟 Android 设备的物理旋转。我在编写一些测试(仪器测试或 Robolectric 测试)时需要它。
我尝试了几种方法来做到这一点,但似乎都没有按预期工作。
Activity.setRequestedOrientation()
这会导致 Activity 被销毁然后重新创建。
设备旋转时不会重新创建具有锁定方向的 Activity,并且我的一个测试对具有锁定方向的 Activity 进行操作,因此使用这种方法不起作用。
UiDevice.setOrientation*()
这对具有锁定方向的正在运行的 Activity 具有与上述方法类似的效果。所以这种方法也行不通。
UiAutomation.setRotation()
与(1)和(2)类似的结果。
ShadowSensorManager.sendSensorEventToListeners(sensorEvent)
我曾经ShadowSensorManager
写过一个 Robolectric 测试,我明确地改变了传感器的方向。我认为这会触发/模拟物理设备旋转,但事实并非如此。在具有解锁方向的 Activity 上使用这种方法不会导致它被销毁然后重新创建。
我觉得我缺少一个简单的解决方案,这似乎是 Android 中的一个常见问题。任何帮助,将不胜感激。
解决方案
推荐阅读
- jquery - 数据表操作列无法正常工作
- html - 位置粘性在 IOS 设备或 iPhone 设备上不起作用
- python - 如何使用 begin() 函数的返回值作为 eind() 函数的参数?
- javascript - 在测试套件中运行时,云函数中事务中的数据始终为空
- three.js - 如何将 shadertoy 着色器(带缓冲区)转换为在 three.js 中使用?
- java - 将查询参数传递给 Android 应用程序中的 LiveData/Viewmodel
- angular - 角度模式指令无法按预期工作
- python - 如何加快我的 Pandas 地理距离计算?
- jquery - 如果单击选择器,则触发警报
- ethereum - truffle migrate --network "name_of_my_network" 永远挂着