Android截图监听

在很多的应用中都有这样的一个暗藏的功能,就是在应用中截图,会触发弹窗,弹窗会询问你是否有什么问题或者是否想分享该截图,这就是截图监听

其实截图监听无非是

  • 利用FileObserver监听某个目录中资源变化情况

  • 利用ContentObserver监听全部资源的变化

  • 监听截屏快捷按键

这三种方案

第一种方案是通过 FileObserver监听截屏文件夹,当有新的截屏文件产生时,调用设定的回调函数执行相关操作,它的优点就是实现起来比较简单,缺点是需要做大量的适配,因为不同的厂商出发的监听事件名字和文件夹都不一样

第二种方案通过 ContentObserver监听多媒体图片库资源的变化。当手机上有新的图片文件产生时都会通过MediaProvider类向图片数据库插入一条记录,以方便系统的图片库进行图片查询,可以通过ContentObserver接收图片插入事件,并获取插入图片的URI

第三种方案由于厂商自定义Android系统的多样性,再加上快捷键的不同以及第三方应用,监听截屏快捷键这事基本不靠谱,所以自动忽略这个方案

通过读源码(TakeScreenshotService 和 GlobalScreenshot )总结Android截屏系统做的事情:

保存截屏Bitmap到本地文件

把图片记录插入到ContentProvider中

发送一个截图相关的Notification

所以,第二种方案的情况下,是我们最容易实现的


请使用浏览器的分享功能分享到微信等