如何在Android Shell上转义字符串“%s”?

时间:2018-06-20 04:42:27

标签: android shell adb ui-automation uiautomator

我将PC上的字符串发送到Android应用,然后该应用执行shell命令输入文本:

input text "text"

我确实转义了所有特殊字符。对于空间,我将其替换为“%s”,问题是我无法输入字符串“%s”本身。 Android Shell将其解释为空格。

我的尝试和问题:

  1. 分割文本。如果文本中包含“%s”字符串,我会将整个文本拆分为多个单词(例如words[n]),以便单词以“%”结尾并以“ s”开头。例如,如果文本为“ qwe%s34g”(假设其为密码),我将其拆分为words[n] = { "qwe%", "s34g" }。然后,我运行input text命令n次。
    问题:这并不顺利。每个input text命令都需要花费相当多的时间,而且我不希望在输入每个单词后会有时间间隔。
  2. 使用input keyevent命令。我只是将每个字母替换为其各自的键码,然后使用input keyevent Keycode_strings
    问题:并非所有字符都有其键码,例如“!”,“?”等。

我想通过一个命令执行来输入它,所以会很流畅。我想输入一个字符串“%s”。您能建议我任何解决方案吗?


编辑

我正在使用UiDevice **类在Android应用上执行命令:

...
if (!text.isEmpty()) {
    getUiDevice().executeShellCommand("input text " + text);
}
...


** UiDevice :UiDevice提供对有关设备状态信息的访问。您还可以使用此类来模拟设备上的用户操作,例如按d键盘或按“主页”和“菜单”按钮。

0 个答案:

没有答案