微信也能调用 Android 原生图库选择图片!

@fython  October 23, 2018

发现

前不久了解到微信 Android 版的聊天界面中,“相册” 按钮长按是会调用系统相机的选择来进行拍摄,这对于拥有良好软件优化算法的相机应用使用者是很方便的特性,也是一款多媒体社交应用应有的功能,然而它却作为一种隐藏功能甚至可能某一个版本之后就会被移除了。

既然做了外部相机调用,为什么他们不加上外部图片选择呢?原因我不太想知道,我猜我听完之后都会认为是借口,至少通过原生图库(文档应用)选择带来的好处是非常多的!例如避免第三方应用欠缺的优化导致选图体验下降、支持各种第三方内容提供程序(例如 Google Drive、Google Photos 等在线文件服务)、支持 USB 设备。

讲了这么多,应该可以猜到接下来我想做的工作是什么了吧:写一个假的(代理)相机应用来代理图片选择。

需求

  • 调用代理相机应用时打开原生图库,并将结果存到应用指定的输出路径。
  • 只对微信应用生效,其它应用依旧能打开正常的相机应用
  • 在微信完成发送后将产生的图片及时删除,避免每次发送都有重复图片产生

实现

具体实现已经放到 https://bitbucket.org/fython/wechatdocuiproxy/src 中,实现非常简单,在此不细说。

但第三个需求,目前还没有想到很好的办法去解决,选择后定时删除,如果用户犹豫很久,就可能删除失败,尽管不太可能出现这种情况(

又或者检测前台应用是不是微信,当变成其他应用时,就将之前记录的发送时产生的文件清除,但需要借助一些权限,例如通过 Shizuku API。

使用方法

安装该应用(预编译包),将默认相机应用设置为 “DocUIProxy for WeChat”,在微信聊天界面长按 “相册” 按钮,现在可以通过系统图库来选择图片了。

视频效果

YouTube 上观看


添加新评论