Android监听截屏事件
截屏方案对比(截屏事件没有同一的api)
方案一:利用FileObserver监听某个目录中资源变化情况
- 优点:操作简单
- 缺点:
- 不同的手机,默认截屏图片储存的文件夹可能不同
- 不同的手机,事件回调可能有些不同
- FileObserver只能监听文件夹中子文件和子文件夹的变化情况,不能监听子文件夹内部的资源变化
方案二:利用ContentObserver用来监听指定uri的所有资源变化【适配R】
- 优点:适配方便
- 缺点:去重麻烦
结合方案一方案二优缺点,且项目里已有方案是FileObserver有些机型难适配, 适配考虑 最终选择了方案二
ContentObserver实现方案
- ContentObserver用来监听指定uri的所有资源变化
- 添加过滤条件
- 时间判断,图片的生成时间在开始监听之后, 并与当前时间相隔10秒内
- 尺寸判断,图片的尺寸没有超过屏幕的尺寸
- 路径判断,图片路径符合包含特定的关键词:这一点是关键,截屏图片的保存路径通常包含“screenshot”
自测机型
- Android 11.0
- 小米 11
- vivo iQOO 5
- Android 10.0
- 华为 mate20x
- oppo Reno2
- Android 9.0
- 华为 荣耀 9
- vivo 1725
- oppo Reno
- Android 8.1
- oppo R11s
- 小米6X
源码
Android监听截屏事件相关推荐
- uni-app 监听截屏事件和截图(ios)
uni-app 监听截屏事件和截图(ios):https://ext.dcloud.net.cn/plugin?id=1637
- Android监听截屏
Android系统没有提供默认的截屏事件监听方式,需要开发者自己想办法实现.查看了网上推荐的实现方式,主要是通过内容观察者(ContentObserver)监听媒体数据库的变化,根据内容名称(路径)中 ...
- 【微信小程序系列:二】小程序常用功能:跳转地图、扫一扫、人脸识别、拍照、拨打电话、调整屏幕亮度、文字可复制、监听截屏...
一.先言: (- ̄▽ ̄)-,hello,微信小程序系列第二篇,介绍下小程序里的前端常用功能api,可以快速copy使用~ 二.文字可复制: 小程序页面里的文字默认是没有长按复制功能的,需要套个标签来实 ...
- Android锁屏界面监听按键,Android 监听锁屏/开屏事件
1. 两种方案 (1) 监听BroadcastReceiver (2)获取PowerManager事件 2. BroadcastReceiver 2.1. 事件 总共有3个事件: Intent.AC ...
- android 强制锁屏代码,Android 监听锁屏、解锁、开屏 功能代码
1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android. ...
- Android 监听横竖屏切换
Android 监听横竖屏切换 重写 Activity 中的 onConfigurationChanged 方法 override fun onConfigurationChanged(newConf ...
- android锁屏代码分析,Android 监听锁屏、解锁、开屏 功能代码
1.首先定义 ScreenListener package com.app.lib; import android.content.BroadcastReceiver; import android. ...
- android 监听锁屏 权限,Android中监听锁屏变化和防止锁屏
Android app中可能存在某些可视化耗时操作,需要防止锁屏. 一.监听锁屏 添加权限 首先来看如何监听锁屏,使用BroadcastReceivercaset来监听 1.锁屏监听 public c ...
- Android监听横竖屏切换
偶然在项目中用到播放视频时,需要横屏将视频全屏播放,所以需要监听屏幕的横竖屏切换事件. ConfigChanges,用于捕获手机状态的改变,当横竖屏切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就 ...
最新文章
- 理解在javascript中的内存泄露
- mysql删除root用户密码_MySQL忘记密码 或者误删除root用户有效解决办法
- MySQL—事务并发问题
- python中怎么输入角度_在Python中更正两点之间的角度
- ttc error oracle,ORA-03137: TTC protocol internal error : [12333]错误一例
- 45请求转发和请求重定向区别
- Material Design之AppBarLayout总结
- “不务正业”的化学奖又发给了生物
- 局部变量 和 全局变量
- java Excel导出 xlsx格式(超简单)
- pom env.java home_关于java:aven:POM.xml中缺少工件com.sun:tools:jar:1.6.0编译时异常...
- mockito 多层调用_连续调用的Mockito迭代器样式存根
- 搭建git服务器 web项目,git服务器搭建web项目
- 计算机教室标语6个字,教室标语大全
- 如何在Tungsten Fabric上整合裸金属服务器(附配置验证过程)
- 深度学习_深度学习基础知识_二分类、单标签多分类、多标签多分类、多任务的含义
- net start mysql无法启动数据库的解决办法
- 20189221 2018-2019-2 《密码与安全新技术专题》第六周作业
- sstream类的详解
- 关于空字符(NUL)在三种不同语言中的匹配