Python脚本调用ADB input keyevent 279无法获取安卓剪贴板内容求助
解决Python脚本获取安卓模拟器剪贴板内容的问题
你当前用的input keyevent 279只是模拟粘贴按键操作,这个命令本身不会输出剪贴板里的内容,所以stdout为空是正常的。要获取剪贴板文本,得用专门读取剪贴板的ADB命令,以下是两种可行方案:
方案一:适用于Android 10及以上版本
直接使用系统提供的cmd clipboard get命令读取剪贴板:
super().tap(978, 537) # 点击屏幕 super().tap(193, 686) # 点击复制按钮 # 读取剪贴板内容 ret = subprocess.run(f'{adb_path} -s 127.0.0.1:5556 shell cmd clipboard get', stdout=subprocess.PIPE, stderr=subprocess.PIPE) # 解码并去除多余空白字符 clipboard_content = ret.stdout.decode('utf-8').strip() print(clipboard_content)
方案二:适用于Android 9及以下旧版本
通过content provider查询剪贴板数据:
super().tap(978, 537) # 点击屏幕 super().tap(193, 686) # 点击复制按钮 # 查询剪贴板内容 ret = subprocess.run(f'{adb_path} -s 127.0.0.1:5556 shell content query --uri content://clipboard --projection text', stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = ret.stdout.decode('utf-8').strip() # 解析输出提取文本 clipboard_content = output.split('text=')[-1].strip() if 'text=' in output else '' print(clipboard_content)
另外注意你代码里的两个小问题:
print(ret.decode('uft-8')少了闭合的右括号,应该改成print(ret.stdout.decode('utf-8'))- 编码拼写错误,是
utf-8不是uft-8
内容的提问来源于stack exchange,提问作者Pietro Leon
相关产品推荐
相关产品推荐

