我是否可以使用Selenium或ChromeOptions或ADB在Android上的Chrome上隐藏Soft Keyboar或虚拟键盘。 我做了一些搜索,但所有解决方案都是如果键盘打开然后按后退按钮隐藏它。 但有没有办法在整个执行过程中禁止弹出虚拟键盘。
答案 0 :(得分:0)
您可以使用以下方法隐藏键盘
public void hideKeyboard() {
// Check if no view has focus:
View view = getActivity().getCurrentFocus();
if (view != null) {
InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
答案 1 :(得分:0)
you can use this in oncreate
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
答案 2 :(得分:0)
所以我找到了一种使用adb shell ime
命令禁用和启用键盘的方法。我编写了一个Python脚本来启用/禁用所有键盘输入。
def enable_disable_android_input_methods(action):
p = subprocess.Popen(["adb", "devices"], stdout=subprocess.PIPE)
line = p.stdout.readline()
while line:
log.info(line)
if re.match("\S+\s+device", line):
break
line = p.stdout.readline()
else:
raise AssertionError, "Device not connected via USB"
p = subprocess.Popen("adb shell ime list -a".split(), stdout=subprocess.PIPE)
line = p.stdout.readline()
while line:
m = re.search("mId=(.*)", line)
if m:
if action.lower() == 'enable':
log.info("Enabling Keyboard layout: %s" % line)
cmd = "adb shell ime enable %s" % m.group(1)
else:
log.info("Disabling Keyboard layout: %s" % line)
cmd = "adb shell ime disable %s" % m.group(1)
q = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
out, err = q.communicate()
log.info(out)
line = p.stdout.readline()