You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

屏幕截图检测

使用Android的MediaProjection API获取屏幕内容并与系统截图进行比较

Android系统提供了MediaProjection API,可以获取屏幕内容并进行处理。我们可以利用这个API来实现屏幕截图检测。具体的解决方案如下:

  1. 获取MediaProjection对象

在Activity中使用startActivityForResult()方法启动MediaProjectionManager,获得一个MediaProjection对象。

//声明全局变量
private MediaProjectionManager mediaProjectionManager;
private MediaProjection mediaProjection;
// 省略其他代码
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // 获取MediaProjectionManager对象
    mediaProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
    // 启动获取屏幕的Activity,等待用户授权
    startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), REQUEST_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        // 获取MediaProjection对象
        mediaProjection = mediaProjectionManager.getMediaProjection(resultCode, data);
    }
}
  1. 获取屏幕内容

使用MediaProjection对象构建VirtualDisplay对象,将屏幕内容输出到一个Surface中。然后使用MediaCodec将Surface中的帧数据解码为Bitmap对象。

private Bitmap captureScreen() {
    try {
        // 创建VirtualDisplay对象
        VirtualDisplay virtualDisplay = mediaProjection.createVirtualDisplay("ScreenCapture",
                screenWidth, screenHeight, screenDensity,
                DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
                surface, null, null);
        // 创建MediaCodec对象
        MediaCodec mediaCodec = MediaCodec.createDecoderByType(MediaFormat.MIMETYPE_VIDEO_AVC);
        mediaCodec.configure(format, surface, null, 0);
        // 解码器启动
        mediaCodec.start();
        // 获取解码出的帧数据
        ByteBuffer[] inputBuffers = mediaCodec.getInputBuffers();
        ByteBuffer[] outputBuffers = mediaCodec.getOutputBuffers();
        while (true) {
            MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
            int inputBufferIndex = mediaCodec.dequeueInputBuffer(10000);
            if (inputBufferIndex >= 0) {
                // 获取Surface中的帧数据
                Bitmap bitmap = getBitmapFromSurface();
                // 将帧数据作为输入数据提供给解码器
                ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
                inputBuffer.clear();
                inputBuffer.put(getNV21(bitmap.getWidth(), bitmap.getHeight(), bitmap));
                mediaCodec.queueInputBuffer(inputBufferIndex, 0, inputBuffer.position(), 0, 0);
            }
            int outputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, 10000);
            if (outputBufferIndex >= 0) {
                // 获取解码后的帧数据
                ByteBuffer outputBuffer = outputBuffers[outputBufferIndex];
                Bitmap bitmap = null;
                if (outputBuffer != null) {
                    int width = bufferInfo.width;
                    int height = bufferInfo.height;
                    int bufferSize = width * height * 3 / 2;
                    byte[] buffer = new byte[bufferSize];
                    outputBuffer.get(buffer);
                    outputBuffer.clear();
                    bitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);
                }
                mediaCodec.releaseOutputBuffer(outputBufferIndex, false);
                if (bitmap != null) {
                    return bitmap;
                }
            } 
        }
    } catch (Exception e) {
        e.printStackTrace();
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

AutoWebGLM:自动网页导航 Agent

目前基于 LLM 的Agent在网页任务上正确推理和自我检查的能力明显不足,一旦陷入错误循环,很难迅速纠正问题。基于这些考虑,我们提出了 **AutoWebGLM 框架** 。这是 **一个基于 ChatGLM3-6B 模型的自动网页浏览... 在获取 HTML和网页屏幕截图后生成简化的 HTML 表示。我们标记了具有可操作性判别属性的元素,以便 Agent 去交互。OCR模块用于在图像解析时标注文本元素。Agent 将这个表示和其他观察到的数据结合,来启动动作预测...

集简云新增“AI图像生成与识别”功能:实现智能图像识别与理解场景

示例1:可以通过截图向GPT4 V模型提问: ![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/2fbae8ec91fa4497a4de3b598731e756~tplv-tlddhu82om-image.image?=&rk3s=80... 表示你的车辆检测到了发动机或排放控制系统中的一个问题。以下是一些你可以采取的步骤:不要恐慌。这个指示灯可能表示多种问题,从轻微到严重不等。检查油箱盖是否已经正确地拧紧。一个松动的油箱盖可以触...

议题投稿 2024 中国 KubeCon + CloudNativeCon + 开源峰会 + AI_dev

* Security – 涵盖云原生安全特定方面的内容从检测到威胁建模,安全教育,身份和凭证管理,多租户,机密计算,云原生漏洞管理,以及其他主题。与会者可以期待学习在防御和设计云原生架构方面的战术和技术,以抵御各个架构... 以获取逐步说明和有用的屏幕截图。请注意,这是为 KubeCon + CloudNativeCon 翻译的。### 代表别人提交?虽然演讲者通常会自己提交他们的会议,但他们也常常让其他人代表他们提交。提交者可以选择以其他人的名...

集简云本周新增/更新:新增8款应用,1个功能,更新3款应用,新增近40个动作

浏览器插件支持页面截图并发送 **应用****更新**新增应用:飞书邮箱新增应用:飞书日历新增应用:飞书AI新增应用:飞书搜索新增应... 人脸监测和属性识别等功能操作。 官网:https://www.feishu.cn **可用执行动作*** 基础图片识别* 语音文件识别* 文本翻译* 语种识别* 人脸检测和属性识别 **应用使用...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

屏幕截图检测-优选内容

新增“运维与诊断”操作-支持获取实例系统日志和实例屏幕截图
ECS新增“运维与诊断”类功能,支持获取实例系统日志和实例屏幕截图,为运维人员提供方便的工具,给系统异常故障的诊断和运维提供更多的支持。 当实例出现故障时,如操作系统无响应、异常重启或无法正常启动等问题,需要通过系统日志与屏幕信息诊断分析故障原因,但故障实例通常都无法通过远程连接登录。火山引擎云服务器缓存了实例最近一次启动、重启或者关机时的系统日志,并且支持实时获取实例屏幕截图,支持运维人员利用查看实例系统...
GetConsoleScreenshot - 获取屏幕截图
调用 GetConsoleScreenshot 接口,获取正在运行实例的JPG格式屏幕截图。 注意事项仅支持获取运行中状态实例的系统日志。 暂不支持弹性裸金属型规格的实例。 返回的内容是Base64编码后的JPG图像格式的实例截屏,您需要自行解码。 本接口存在请求频率限制,建议两次请求间隔10s左右,避免请求频率超过接口限制。 调试API Explorer您可以通过API Explorer在线发起调用,无需关注签名生成过程,快速获取调用结果。去调试请求参数下表仅列出...
获取实例系统日志与屏幕截图
本文介绍如何查看实例系统日志与屏幕截图。 使用说明功能 说明 获取系统日志 仅支持获取运行中状态实例的系统日志。 不支持裸金属规格实例使用本功能,实例规格详情可查看实例规格介绍。 仅支持获取Linux实例的系统日志。 系统日志最大为64KB。 获取屏幕截图 仅支持获取运行中状态实例的屏幕截图。 不支持裸金属规格实例使用本功能,实例规格详情可查看实例规格介绍。 不支持获取安装了GRID驱动的Windows实例屏幕截图。 操作场...
查询抽帧截图任务状态 GetSnapshotTask
本文档 API 接口为最新版本接口,后续相关功能的新增都会在此更新,推荐使用最新版本接口。旧版接口文档请参考历史版本。 你可以使用此接口查询指定抽帧截图任务的相关信息。 使用说明接口行为你可以调用GetSnapshot... 1:屏幕流。默认值为0。MaxIdleTimeInteger200任务最大的空闲超时时间。ImageConfigObject图片的相关配置:图片格式,尺寸和截图间隔时间。FormatInteger0图片的格式。值可取 0 或 1,默认为 0。选择 0 时,图片格式为 ...

屏幕截图检测-相关内容

查询抽帧截图任务状态 GetSnapshotTask

你可以使用此接口查询指定抽帧截图任务的相关信息。 使用说明接口行为你可以调用GetSnapshotTask接口,指定你所属的 AppId,查询指定 RoomId 下的抽帧截图任务。 自动抽帧截图任务也支持查询。 通过此接口仅能查询距... 1表示屏幕流。MaxIdleTimeInteger200任务最大的空闲超时时间。ImageConfigObject图片的相关配置:图片格式,尺寸和截图间隔时间。FormatInteger0图片的格式。值可取 0 或 1,默认为 0。选择 0 时,图片格式为 JEPG;选择...

客户端 SDK

感知黑帧发布状态 功能简述 Callback 黑帧视频流发布状态回调 onSEIStreamUpdate 支持外置声卡 功能简述 API 启用匹配外置声卡的音频处理模式 enableExternalSoundCard 音频录制设备测试 功能简述 API 开始音频采... 屏幕音频首帧播放状态回调 onScreenAudioFramePlayStateChanged onScreenAudioFramePlayStateChanged onScreenAudioFramePlayStateChanged 在 Android,iOS,macOS,Windows 端上,支持检测背景声中的音乐,并保护音乐的...

新功能发布记录

商用 安装Virtio1.1驱动 4 支持镜像检测功能。 商用 镜像检测概述 5 镜像数据通过快照进行存储。 商用 自定义镜像 6 弹性预约实例 删除弹性预约实例时,可选公网IP是否随实例释放。 邀测 删除弹性预约实例 7 挂载云... 商用 ECS事件类型汇总 2 运维 支持获取实例系统日志及屏幕截图。 商用 获取实例系统日志与屏幕截图 3 镜像 支持创建包含系统盘与数据盘数据的整机镜像。 邀测 创建自定义镜像 4 网卡 支持通过辅助网卡自动配置工具...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

工作流模板

视频点播拥有丰富的音视频处理能力,例如音视频转码、截图、水印、检测修复、智能字幕等。为了适应不同的音视频处理需求,视频点播提供了创建工作流模板的功能。 功能介绍工作流是指包含多种媒体处理模板的任务流。您可以根据需求,在工作流中添加若干个媒体处理模板。使用配置的工作流,对音视频文件进行视频处理,媒资管理支持切换 2 种模式,对应视频处理方式也不同,区别如下所示。 Vid 模式:以文件 ID(Vid)作为点播的全局唯一标识符...

客户端 SDK

支持设置是否全屏的功能。详细信息,请参考设置全屏显示。 指令分发增加 pod 退房/进房回调接口。详细信息,请参考用户房间状态。 iOSiOS 端 SDK 包含以下新增功能和变更: 在拉流中,支持设置是否全屏的功能。详细信... 支持横屏视频流竖屏显示。详细信息,参考参考 配置参数。 更新 “云手机画面截图” 接口(screenShot)行为:截图的图片格式由 .png 格式改为 .jpg 格式;当云手机存储空间小于600MB时,不可同时指定保存截图文件在云手机...

功能概览

支持不登录实例查看其系统日志与屏幕截图,方便定位故障原因。 获取实例系统日志与屏幕截图 指标监控 为您提供云服务器实例的CPU、内存、网络出入带宽、磁盘IO带宽等监控数据。 查看实例监控数据 事件监控 当实例或任务触发系统事件(例如:系统故障,导致实例重新部署)时,您可及时查看事件详情并进行处理。 事件监控概述 查看实例健康情况 实例健康情况监控功能可以自动检测实例软件和硬件运行信息并汇总计算实例健康度,帮助您通过控...

功能发布历史

测试和使用 SDK 开发代码。 2023-08-10 SDK 在线调试 画质增强 新增:综合增强模型支持配置图像饱和度、亮度 2023-08-04 画质增强 2023 年 7 月变更 说明 发布时间 相关文档 告警管理 新增:支持通过配置告警规则来对... 支持智能检测图片中涉黄、涉政、涉暴恐、违法违规等禁用行为 2022-11-03 智能审核 2022 年 10 月变更 说明 发布时间 相关文档 缩放 新增:缩放支持等比缩放 cover 模式 2022-10-12 图片处理配置 缩放 日志推送 ...

应用场景

屏幕截图屏幕水印等多种取证方式。 使用效果管理视角管理者能够及时识别员工的外发行为并上报。 管理者可以实现人员与终端的绑定,在设备获取业务资源前进行身份验证,以便在出现风险后溯源到具体人员。 管理者提供一站式防护来应对内、外部威胁,降低管理运维的复杂度。 管理者建立可信终端设备库,全面了解资产安全态势。 员工视角员工具备无感的终端安全检测能力,不会降低工作效率。 场景五:办公网零信任建设 员工及生态伙伴在...

控制台常见操作指引

查看实例健康情况:自动检测实例软件和硬件运行信息并汇总计算实例健康度。 运维通过各类运维手段,可以帮助您快速处理实例异常,确保业务平稳运行。 获取实例系统日志与屏幕截图获取实例系统日志与屏幕截图 批量作业安装批量作业客户端 创建作业 查看作业执行结果 流程编排准备工作 创建流程编排任务 查看任务详情 服务器迁移中心您可以通过服务器迁移平台将自有的本地服务器、虚拟机等类型的服务器迁移至火山引擎,解决现有资源受...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询