Android-通过语音来操作微信
2018-02-07 13:47
295 查看
背景: 开车的时候不能去使用微信,如果有很重要的信息需要及时回复就需要等停车。基于上面需要,在车载系统上实现通过语音来操作微信和微信来消息时播报出来。
软件整体架构图如下:
主要模块介绍:
基于AccessibilityService辅助服务实现操作微信
通过OCR解析微信信息
通过VoiceAdapter语音转操作功能(比如:微信发送"haha"给小王)和微信信息播报
TalkingAssistant实现核心逻辑, 管理VoiceAdapter和Wechat的交互
实现开发中碰到以下问题:
1. 微信对辅助服务做了防御,通过辅助服务读取微信某些view时,微信会自动崩溃。
解决方法:参考之前文章
2. 微信聊天内容框是用的自定义view实现,无法通过辅助服务获取到聊天内容。
解决方法:之前做安全沙箱,宿主是显示插件的notification是将notification的view转换成bitmap再显示。此处参考上面方法,通过将自定义view转换成bitmap,然后使用OCR来将图片转文字。
ps:辅助服务不支持dump view action,需要修改辅助服务源码来支持。
3.微信默认设置时竖屏
解决方法:需要在PMS解析package时,针对微信做修改。屏蔽微信在activity里调用setRequestOrientation.
4.如何保证微信更新后,功能继续work?解决方法:辅助服务是通过view id来实现对特定view进行操作的,微信更新时如果出现view id变化则同步更新view id给TalkingAssistant。如果不仅仅是view id变化则需要同时更新解析策略(类似热修复方法,从服务器push最新策略代码)。
结果:此项目demo运行ok, 支持通过语音去操作微信和将微信收到文本信息播报出来。
软件整体架构图如下:
主要模块介绍:
基于AccessibilityService辅助服务实现操作微信
通过OCR解析微信信息
通过VoiceAdapter语音转操作功能(比如:微信发送"haha"给小王)和微信信息播报
TalkingAssistant实现核心逻辑, 管理VoiceAdapter和Wechat的交互
实现开发中碰到以下问题:
1. 微信对辅助服务做了防御,通过辅助服务读取微信某些view时,微信会自动崩溃。
解决方法:参考之前文章
2. 微信聊天内容框是用的自定义view实现,无法通过辅助服务获取到聊天内容。
解决方法:之前做安全沙箱,宿主是显示插件的notification是将notification的view转换成bitmap再显示。此处参考上面方法,通过将自定义view转换成bitmap,然后使用OCR来将图片转文字。
ps:辅助服务不支持dump view action,需要修改辅助服务源码来支持。
3.微信默认设置时竖屏
解决方法:需要在PMS解析package时,针对微信做修改。屏蔽微信在activity里调用setRequestOrientation.
4.如何保证微信更新后,功能继续work?解决方法:辅助服务是通过view id来实现对特定view进行操作的,微信更新时如果出现view id变化则同步更新view id给TalkingAssistant。如果不仅仅是view id变化则需要同时更新解析策略(类似热修复方法,从服务器push最新策略代码)。
结果:此项目demo运行ok, 支持通过语音去操作微信和将微信收到文本信息播报出来。
相关文章推荐
- Android 真机,微信打开 H5,切换到 webview,能通过 webdriver 方法操作页面元素,然后链接到新的 H5 页面后,无法操作元素,appium 服务器没有收到 response,
- [Android]通过JNI访问并操作Bitmap的元素,支持RGB565和ARGB8888
- Android数据存储-通过SharedPreferences实现记住密码的操作
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- Android通过外部浏览器调用微信H5支付,Android+PHP详解
- Android-通过SlidingPaneLayout高仿微信6.2最新版手势滑动返回(一)
- Android 高仿微信语音聊天页面高斯模糊效果
- Android自定义UI实现微信语音
- Android下通过pocketsphinx实现离线语音识别的环境搭建和demo运行
- Android 通过手说tts中文语音包实现中文朗读
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- android基础---简易闪屏操作,通过动画实现
- Android仿微信语音聊天界面
- Android中集成讯飞语音,语音转文字以及文字转语音操作
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- [Android] 通过GridView仿微信动态添加本地图片示例代码
- android客户端通过servlet对数据库操作(图文)
- Android模仿微信语音聊天功能
- Android微信、QQ等分享,无需申请key,通过Intent进行分享。