2

我正在开发一个应用程序,它包含社交共享选项。每当我点击 facebook 时,它都会在设备中打开带有共享视图的 facebook 应用程序。

在那之后,我想把我的应用程序带到前台。

我试过按后退按钮,

press_back_button()

这是不成功的。

有没有办法在 Calabash-android 中将应用程序带到前台?

4

2 回答 2

2

您应该可以通过使用 ADB 发送按键和屏幕触摸来做到这一点

adb shell input keyevent KEYCODE_APP_SWITCH打开最近的应用程序菜单 adb shell input tap 300 300

将在屏幕上发送一个点击事件,但您必须使用坐标才能将它们放在正确的位置。

编辑:我刚刚在我的手机上尝试了以下命令,并且可以重新打开最新的应用程序

adb shell input keyevent KEYCODE_APP_SWITCH
adb shell input tap 300 1700

在你的 ruby​​ 代码上尝试这些命令之前,看看它们是否在终端(而不是 irb)上工作。

第二个命令使用 x 和 y 坐标,这取决于手机屏幕的大小,300 1700 适用于我,但您需要尝试一些不同的数字才能使其适用。

要打开第二个最近的应用程序,我认为这是您需要的,我必须运行adb shell input tap 300 700. 您需要尝试一下,看看什么对您有用。

最终编辑:我找到了一种更好的方法来做到这一点,它不依赖于屏幕分辨率。

adb shell input keyevent KEYCODE_APP_SWITCH

然后找到您的应用程序(您可能需要多次发送这些才能使其正常工作)

adb shell input keyevent KEYCODE_DPAD_UP

和/或

adb shell input keyevent KEYCODE_DPAD_DOWN

然后选择

adb shell input keyevent KEYCODE_ENTER
于 2015-07-28T11:08:50.450 回答
1

您需要运行系统命令,例如 system("adb shell input keyevent KEYCODE_APP_SWITCH") 这将打开最近的活动。

于 2015-08-27T16:44:46.240 回答