标签:
公司的项目由于安全需要,对某一特定的页面需要监听是否被用户截屏了。
简单搜了一下,很少有这方面的问题,没办法,只能自己折腾了。
目前想到三种思路:
1、监听广播
当然,前提是系统在截屏的时候发送某一广播,然而并没有。
2、监听按键
Android手机按下“电源键+音量减”会进行截屏,此外大部分手机状态栏下拉的页面中也会有截屏按钮。遗憾的是,监听这两处的操作并不是一件让人开心的事儿~~。
3、监听手机中图片的变化
开始只想到了MediaStore这个类,可以通过它拿到手机中的所有图片,每隔一段时间监听图片数量。这似乎是个不错的主意,直到我转角遇到了ContentObserver。
从名字就可以知道,它是一个内容观察者。通过给ContentProvider注册ContentObserver,可以实现对数据的监听。
上面通过register()和unregister()两个静态方法进行监听器的注册和反注册。建议在onStart()方法中进行注册,在onStop()方法中进行反注册,因为截屏并不会引起当前页面生命周期的变化。
在onChange()回调方法中,通过查询,拿到最近添加的那张图片,从创建时间、尺寸、路径3个方面进行匹配,判断是否是截屏图片。
匹配成功后,就可以在doReport中做自己想做的事了~~
标签:
原文地址:http://www.cnblogs.com/tonny-li/p/5725620.html