使用Android Studio 聊微信

序言

闲来无事发现Android Studio可以用来聊微信。新版的Android Studio有一个Running Device模块可以用来管理真机,可以操作真机。

通过连接真机可以用来聊微信。 问题是这个功能,可以输入文本,但是不能输入中文。于是就开发了一个工具,可以在控制台输入中文转发到手机上。

实现原理

ADBKeyBoard 基于这个项目实现。 项目主页可以直接下载apk 安装。

实现的脚本

bat 复制代码
@echo off
:: 设置 UTF-8 编码以支持中文
::chcp 65001 >nul

:: 批处理文件:循环读取用户输入并执行ADB命令(支持文本、删除、清空、ActionGo、帮助、退出)

title ADB 输入广播工具

:: 启动时启用并切换到 ADB 键盘
echo 正在启用并切换到 ADB 键盘...
adb shell ime enable com.android.adbkeyboard/.AdbIME
adb shell ime set com.android.adbkeyboard/.AdbIME
echo.

:: 主菜单提示
echo ADB 键盘已就绪。输入 -h 查看可用命令。
echo.

:: 显示帮助信息
:help
cls
echo.
echo **********************************************
echo   ADB Input Text/Code 广播发送器 - 帮助文档
echo.
echo 支持指令:
echo.
echo   text              发送指定文本内容
echo   -d / del          发送删除键事件(code 67)
echo   -clear / -c       发送清空文本事件
echo   -g                发送 ActionGo 事件(code 2)
echo   -exit             切换回搜狗输入法并退出程序
echo   -h                显示此帮助文档
echo.
echo 每次发送前会自动切换到 ADB 键盘。
echo **********************************************
echo.
pause
cls
echo ADB 键盘已就绪。输入 -h 查看可用命令。
echo.
goto loop

:: 主循环
:loop
set "input="
set /p input=请输入内容(输入 -h 查看帮助): 

if not defined input (
    echo.警告:未输入内容,请重新输入。
    echo.
    goto loop
)

:: 处理帮助指令
if /i "%input%" == "-h" goto help

:: 处理退出指令
if /i "%input%" == "-exit" (
    echo 正在切换回搜狗输入法...
    adb shell ime set com.sohu.inputmethod.sogou/.SogouIME
    echo 已切换输入法,正在退出程序...
    timeout /t 2 >nul
    exit
)

:: 判断是否是清空操作(-clear 或 -c)
if /i "%input%" == "-clear" (
    adb shell am broadcast -a ADB_CLEAR_TEXT
    echo 已发送清空指令(ADB_CLEAR_TEXT)
    echo.
    goto loop
)

if /i "%input%" == "-c" (
    adb shell am broadcast -a ADB_CLEAR_TEXT
    echo 已发送清空指令(ADB_CLEAR_TEXT)
    echo.
    goto loop
)

:: 判断是否是删除操作(-d 或 del)
if /i "%input%" == "-d" (
    adb shell am broadcast -a ADB_INPUT_CODE --ei code 67
    echo 已发送删除指令(code 67)
    echo.
    goto loop
)

if /i "%input%" == "del" (
    adb shell am broadcast -a ADB_INPUT_CODE --ei code 67
    echo 已发送删除指令(code 67)
    echo.
    goto loop
)

:: 判断是否是 ActionGo 操作(-g)
if /i "%input%" == "-g" (
    adb shell am broadcast -a ADB_EDITOR_CODE --ei code 2
    echo 已发送 ActionGo 指令(ADB_EDITOR_CODE, code 2)
    echo.
    goto loop
)

:: 默认行为:发送文本
adb shell am broadcast -a ADB_INPUT_TEXT --es msg "%input%"
echo 已发送文本: %input%
echo.
goto loop

功能如下,输入-h 可以显示帮助文档

bat 复制代码
**********************************************
   ADB Input Text/Code 广播发送器 - 帮助文档
.
 支持指令:
.
   text              发送指定文本内容
   -d / del          发送删除键事件(code 67)
   -clear / -c       发送清空文本事件
   -g                发送 ActionGo 事件(code 2)
   -exit             切换回搜狗输入法并退出程序
   -h                显示此帮助文档
.
**********************************************

注意事项

中文乱码

保存成bat的时候可以保存为系统默认的编码,比如我用的就是这个。如果出现乱码,可以多另存为几种编码。然后运行输入-h 看看有没有乱码

切换为原有的输入法

可以使用 adb shell ime list -a 列出所有支持的输入法。

每个输入法前面都有名字,替换脚本里面的名字就行了。

bat 复制代码
adb shell ime set com.sohu.inputmethod.sogou/.SogouIME

快速启动

我的做法是把上面的脚步保存为wx.bat。把这个bat所在的路径配置进path目录里面。然后就可以直接在Android Studio的控制台 输入wx 启动这个工具。

微信设置

需要再微信->设置->聊天中,关闭这个按钮。才能使用回车来发送信息。

使用

启动工具以后,通过running Device 选中一个输入框。输入文本回车。再输入-g 发送即可。 效果

相关推荐
CYRUS_STUDIO8 小时前
深入 Android syscall 实现:内联汇编系统调用 + NDK 汇编构建
android·操作系统·汇编语言
死也不注释9 小时前
【第一章编辑器开发基础第一节绘制编辑器元素_6滑动条控件(6/7)】
android·编辑器
程序员JerrySUN11 小时前
Linux 文件系统实现层详解:原理、结构与驱动衔接
android·linux·运维·数据库·redis·嵌入式硬件
2501_9160137411 小时前
iOS 加固工具使用经验与 App 安全交付流程的实战分享
android·ios·小程序·https·uni-app·iphone·webview
南棱笑笑生11 小时前
20250715给荣品RD-RK3588开发板刷Android14时打开USB鼠标
android·计算机外设
hy.z_77713 小时前
【数据结构】反射、枚举 和 lambda表达式
android·java·数据结构
幻雨様13 小时前
UE5多人MOBA+GAS 20、添加眩晕
android·ue5
没有了遇见14 小时前
开源库 XPopup 资源 ID 异常修复:从发现 BUG 到本地 AAR 部署全流程
android
雮尘14 小时前
一文读懂 Android 屏幕适配:从基础到实践
android·前端
用户20187928316714 小时前
浅谈焦点冲突导致异常背景色的机制
android