通过 shell 从代码调用模拟器上的指纹触摸

F1s*_*her 7 shell android

我正在尝试进行测试指纹的集成测试。

根据谷歌文档从终端调用模拟器上的手指触摸,您需要使用:

adb -e emu 手指触摸 <finger_id>

这对我有用。在我的例子中 id 是 45146572。但是在测试中你不能自己输入这个命令,因为它应该自动完成。

我一直在尝试各种方法来解决问题(例如,试图了解应用程序如何从传感器接收信息 - 也许通过某种广播意图等),现在我仍然不知道该怎么做。

我知道 UiAutomation 和 UiAutomator 的类 - UiDevice 有方法

执行shell命令

我认为这可能会有所帮助。但即使我做了类似的事情:

getUiDevice().executeShellCommand("-e emu finger touch 45146572");
Run Code Online (Sandbox Code Playgroud)

我的设备不会对它做出反应(我已经尝试过两个类和各种线程)。我相信这是由于 executeShellCommand 已经在 shell 中运行造成的。所以这就像我打字到终端

Kamils-MacBook-Pro:~ F1sherKK$ adb shell
root@generic_x86_64:/ #
Run Code Online (Sandbox Code Playgroud)

我想这就是问题所在,因为谷歌想要:

adb -e emu finger touch
Run Code Online (Sandbox Code Playgroud)

不是

adb shell -e emu finger touch
Run Code Online (Sandbox Code Playgroud)

我对 shell 的了解可能还不够。我已经多次查看所有文档

你知道如何从外壳调用手指触摸吗?

小智 0

我相信您必须使用不同格式的密码。它应该是“aa11aa”,即 LetterLetterNumberNumberLetterLetter。