请问, adb 输入内容和手动点击键盘输入的区别在哪?

8 天前
 mfyhx1417

如题,登陆某 app 需要输入密码

手动在键盘输入密码,假设密码是:"Abc@123",能登陆成功

但是通过 adb 输入相同密码(输入的密码确认是一样的),却提示密码错误

adb shell input text Abc@123

尝试使用 python appium ,一个一个字符输入也提示密码错误

def input_keycode(self, text):
    for i in text:
        time.sleep(0.5)
        if i == '@':
            self.driver.press_keycode(77)
        elif i.isnumeric():
            keycode = int(i) + 7
            self.driver.press_keycode(keycode)
        else:
            if i.isupper():
                keycode = ord(i.lower()) - ord('a') + 29
                self.driver.press_keycode(keycode, 1)
            else:
                keycode = ord(i) - ord('a') + 29
                self.driver.press_keycode(keycode)

难道安卓能检测到输入方式? 不太懂,求大佬们解答🙏

1015 次点击
所在节点    Python
6 条回复
alphaControler
8 天前
keycode 对应的字符不是你想的那样
beixiao
8 天前
用 uiautomator2 试试,最近也遇到一个输入框必须要用 adb 输入才行😂
darkengine
8 天前
可以写个 demo 试试,拖个 EditText 用 adb shell input 输入,用 logcat 打出来看是不是变了
drymonfidelia
8 天前
好像不是 keycode 的问题,印象里确实有办法检测 keyup 的来源,好多年没做 android 开发了
mfyhx1417
6 天前
@alphaControler 是一样的
mfyhx1417
6 天前
好像知道问题了,应该是安卓那边使用了自定义键盘。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051736

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX