2

我正在尝试构建一个自动化测试框架来检查应用程序应该响应的基本内容,而不会崩溃。其中之一是检查应用程序是否正确响应配置更改。现在,由于它是自动化的,我必须在横向和纵向之间切换模拟器的方向,并以编程方式观察它是否崩溃。[大写因为有很多关于 ctrl+F12 或 num pad 7 的问题]

我正在尝试找出一个 adb 或模拟器控制台命令来完成这项工作。

我对 localhost:5554 做了一个 telnet 并输入了以下命令:

$sensor status // 给出所有传感器的启用/禁用状态

acceleration: enabled.
magnetic-field: enabled.
orientation: enabled.
temperature: enabled.
proximity: enabled.
OK

$sensor 获取方向

orientation = 0:0:0

$sensor 设置方向 90:0:0

OK

我尝试了不同的组合,但它没有响应。为了获得在横向模式下设置的值,我使用 ctrl+F12 手动更改了方向并尝试再次获取方向传感器状态,但令我沮丧的是,该值没有改变。

某个博客也提到了 ADB 中的这个特定命令

$service 调用窗口 18 i32 1

$service 调用窗口 18 i32 0

用于切换方向。但是,我收到此错误消息

结果:包裹(fffffffc ffffffff '........')

如果我能找到解决方案,那就太好了。

4

1 回答 1

2

最后我想出了一个办法。

首先,我将尝试稍微澄清一下这个问题:

通常人们谈论“旋转”AVD 屏幕实际上意味着将皮肤布局更改为纵向/横向(平板电脑的模拟旋转)。这可以通过按数字键盘上的“7/9”键或按 ctrl+Fn+F12 来完成。在这种情况下,显示的方向不会改变,有时显示会令人讨厌的从左到右或从右到左,而不是自然的从上到下。这可以通过取消选中android设置中的自动旋转来解决。

但是,在某些情况下,我们希望看到重力传感器的效果。我认为这实际上与OP的问题有关。与 GPS 不同,Eclipse 没有 GUI 工具来执行此操作。OP非常接近解决问题。但是,方向传感器不是正确的,我们需要使用重力/加速度传感器来自动旋转屏幕。尝试以下命令并观察自动旋转的显示方向:

sensor set acceleration 9.77622:0:0
sensor set acceleration 0:9.77622:0
sensor set acceleration 0:0:9.77622
于 2013-01-19T18:38:28.010 回答