我怎样才能从testing代码旋转的Android模拟器?

我想在横向和纵向模式下testing我的应用程序的不同行为。 我有一个android.test.InstrumentationTestCase的子类,它能够以纵向模式testing我的应用程序的行为,但是如果我(手动)在运行testing之前将模拟器放到横向上,它将会失败。 这很好 – 景观行为不应该通过肖像testing – 我知道如何检查从我的testing代码的方向,所以我可以避免testing失败 – 但我想要做的是(从testing代码)把仿真器进入每个testing的正确状态。 我怎样才能做到这一点?

Solutions Collecting From Web of "我怎样才能从testing代码旋转的Android模拟器?"

如果你想旋转活动,你会想要使用这个: http : //developer.android.com/reference/android/app/Activity.html#setRequestedOrientation(int )

我最终做的是在我的活动中提取一些代码,获得方向到一个OrientationGetter接口,并给活动一个DefaultOrientationGetter返回设备(或模拟器)的方向。 现在我的testing可以注入一个愚蠢的存根OrientationGetter,只需返回肖像或风景,我可以testing我的活动的代码,而无需实际控制模拟器的状态。 它工作正常。

我没有看到类似于模拟器控制台命令的明显用途。 从主机上,也许可以使用Xtest或者一些win32代码将F11 / F12注入到仿真器中(并且可能通过读取窗口几何来确定当前状态)。 如果testing逻辑正在仿真器中运行,你可以通过模拟器的tcp输出来监听主机上的一个端口,该端口将显示为10.0.2.2,并要求它注入该密钥。 但这似乎不雅。

重build模拟器添加一个控制台命令会好一点。

您可以通过按下面的按键顺序Ctrl + F12来实现