一种桌面系统上安卓应用的限制截屏方法技术方案

技术编号:34753378 阅读:19 留言:0更新日期:2022-08-31 18:49
本发明专利技术公开了一种桌面系统上安卓应用的限制截屏方法,通过在安卓兼容环境中监测限制截屏系统接口的调用及Toast的创建过程,确定限制截屏的安卓应用的指纹信息及Toast相关安卓应用的指纹信息,并根据指纹信息判断图层是否属于限制截屏的安卓应用,同时,在桌面系统中根据指纹信息确定窗口是否属于限制截屏的安卓应用并控制窗口的显示或隐藏,由此在桌面系统上实现了安卓应用的限制截屏功能。系统上实现了安卓应用的限制截屏功能。系统上实现了安卓应用的限制截屏功能。

【技术实现步骤摘要】
一种桌面系统上安卓应用的限制截屏方法


[0001]本专利技术属于安卓应用开发
,具体涉及一种桌面系统上安卓应用的限制截屏方法。

技术介绍

[0002]Linux或Windows等桌面操作系统上的安卓兼容环境(下文简称安卓兼容环境)是一种在Linux或Windows操作系统上运行安卓应用的技术,对丰富操作系统应用生态有着重要的意义。通常情况下,典型的安卓兼容环境主要包括安卓应用显示单元和安卓应用兼容服务,安卓应用显示单元用于在桌面操作系统上实现安卓应用的用户界面,安卓应用兼容服务用于提供运行于桌面操作系统上的安卓兼容环境,通过安卓应用显示单元与安卓应用兼容服务的相互配合实现安卓应用在桌面操作系统上的有效运行,例如,现有安卓兼容环境的实现方案有xDroid,它包括xDroidUI和xDroidServer,xDroidUI为安卓应用显示单元,xDroidServer为安卓应用兼容服务。
[0003]现有某些安卓应用中包含密码输入、个人隐私填写等内容敏感的使用页面,这些使用页面存在被恶意软件截屏进而导致用户个人数据被盗的可能,因此在涉及此类情况的安卓应用开发过程中开发人员往往会为上述使用页面增加防截屏功能。现有安卓系统提供了安卓应用防截屏的系统接口,通过设置系统接口达到限制截取安卓应用窗口的功能,如为接口activity.getWindow().addFlags()设置参数为WindowManager.LayoutParams.FLAG_SECURE,设置该系统接口后,即使在安卓应用视图切换时也无法截取安卓应用窗口的清晰的缩略图。
[0004]然而,由于安卓应用设置的防截屏机制是通过安卓系统实现的,因此对于运行在桌面系统上的安卓应用而言,上述防截屏机制将不再起作用,此时采用桌面系统提供的截屏方式进行截屏就可以截取整个桌面系统当前桌面的内容,如采用桌面系统提供的截屏按键或者截屏接口即可间接实现对安卓应用的截屏,这为用户在桌面系统上使用安卓应用引入了安全隐患。

技术实现思路

[0005]有鉴于此,本专利技术提供了一种桌面系统上安卓应用的限制截屏方法,能够实现运行在桌面系统中的安卓应用的限制截屏功能。
[0006]本专利技术提供的一种桌面系统上安卓应用的限制截屏方法,包括以下步骤:步骤1、用户在桌面系统中启动安卓应用时,当安卓兼容环境的限制截屏系统接口被调用且调用参数为限制截屏参数时,获取安卓应用的第一指纹信息,并将第一指纹信息发送至桌面系统的安卓应用显示单元;步骤2、安卓应用显示单元在与第一指纹信息相匹配的安卓应用窗口中增加限制截屏标记;安卓兼容环境在Toast创建时获取与其相关的安卓应用的第二指纹信息,若第二指纹信息与第一指纹信息相同则为Toast增加限制截屏标记,否则不做处理;
步骤3、当桌面系统中出现截屏操作时,暂停执行截屏操作,通知安卓兼容环境遍历当前的Display,隐藏Display中属于限制截屏的安卓应用的图层,再强制刷新Display;步骤4、恢复执行截屏操作,待截屏操作执行完毕后,通知安卓兼容环境恢复步骤3隐藏的Display图层后,再强制刷新Display。
[0007]进一步地,所述步骤3中隐藏Display中属于限制截屏的安卓应用的图层的方式为:安卓兼容环境遍历Display,对于非新增或状态未改变的Display,选择Display中属于限制截屏的安卓应用的图层进行隐藏,或选择名称中含有限制截屏标记的图层进行隐藏,再将Display的状态设置为待刷新;对于新增的Display,选择不属于限制截屏的安卓应用的图层且名称中不含限制截屏标记的图层构建LayerStack完成Display的创建。
[0008]进一步地,所述选择Display中属于限制截屏的安卓应用的图层进行隐藏,或选择名称中含有限制截屏标记的图层进行隐藏中的隐藏方式为:将属于限制截屏的安卓应用的图层或名称中含有限制截屏标记的图层从Display的LayerStack中删除。
[0009]进一步地,所述选择Display中属于限制截屏的安卓应用的图层进行隐藏,或选择名称中含有限制截屏标记的图层进行隐藏中的隐藏方式为:将属于限制截屏的安卓应用的图层或名称中含有限制截屏标记的图层设置为全透明。
[0010]进一步地,所述步骤3中当桌面系统中出现截屏操作时的判断方式为:当安卓应用显示单元监测到桌面系统按键中的截屏键被按下则说明出现截屏操作。
[0011]进一步地,所述步骤3中当桌面系统中出现截屏操作时的判断方式为:当桌面系统监测到截屏API被调用则说明出现截屏操作。
[0012]进一步地,所述步骤3中还包括通知安卓应用显示单元将带有限制截屏标记的安卓应用窗口均设置为不可见。
[0013]进一步地,所述将带有限制截屏标记的安卓应用窗口均设置为不可见的方式为:将带有限制截屏标记的安卓应用窗口设置为全透明。
[0014]进一步地,所述将带有限制截屏标记的安卓应用窗口均设置为不可见的方式为:对于Linux系统在窗口合成器合成窗口时不合成带有限制截屏标记的安卓应用窗口。
[0015]有益效果:本专利技术通过在安卓兼容环境中监测限制截屏系统接口的调用及Toast的创建过程,确定限制截屏的安卓应用的指纹信息及Toast相关安卓应用的指纹信息,并根据指纹信息判断图层是否属于限制截屏的安卓应用,同时,在桌面系统中根据指纹信息确定窗口是否属于限制截屏的安卓应用并控制窗口的显示或隐藏,由此在桌面系统上实现了安卓应用的限制截屏功能。
附图说明
[0016]图1为本专利技术提供的一种桌面系统上安卓应用的限制截屏方法的流程图。
具体实施方式
[0017]下面结合附图并举实施例,对本专利技术进行详细描述。
[0018]为了便于理解本专利技术提供的技术方案,现将与本专利技术相关的安卓系统技术名词列举如下:SurfaceFlinger服务,是用于在安卓系统中将接收到的多个来源的图形显示数据合成后发送到显示设备。例如,安卓应用一般包括三个图层,即顶部的状态栏、底部或者侧面的导航栏以及应用的界面,单独更新和渲染图层,再将图层发送到SurfaceFlinger服务进行合成后刷新到硬件显示。
[0019]绘制表面(Surface),是安卓应用窗口第一次显示时请求安卓系统内的WindowManagerService服务为其创建的用于记录窗口显示内容的类。安卓系统中,窗口(Window)是从设计者角度定义的关于层次和布局的类,Surface则是从工程师实现角度定义的类。窗口的内容是变化的,Surface需要有空间来记录每个时刻窗口的内容。在安卓系统的SurfaceFlinger实现里,Surface一般具有两个缓冲区,分别用于绘画和显示,两个缓冲区按照固定的频率进行交换,从而实现窗口的动态刷新。
[0020]图层(Layer),是SurfaceFlinger 进行合成的基本操作单元。Layer在安卓应用请求创建Surface时在SurfaceFlinger内部创建,因此Surf本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种桌面系统上安卓应用的限制截屏方法,其特征在于,包括以下步骤:步骤1、用户在桌面系统中启动安卓应用时,当安卓兼容环境的限制截屏系统接口被调用且调用参数为限制截屏参数时,获取安卓应用的第一指纹信息,并将第一指纹信息发送至桌面系统的安卓应用显示单元;步骤2、安卓应用显示单元在与第一指纹信息相匹配的安卓应用窗口中增加限制截屏标记;安卓兼容环境在Toast创建时获取与其相关的安卓应用的第二指纹信息,若第二指纹信息与第一指纹信息相同则为Toast增加限制截屏标记,否则不做处理;步骤3、当桌面系统中出现截屏操作时,暂停执行截屏操作,通知安卓兼容环境遍历当前的Display,隐藏Display中属于限制截屏的安卓应用的图层,再强制刷新Display;步骤4、恢复执行截屏操作,待截屏操作执行完毕后,通知安卓兼容环境恢复步骤3隐藏的Display图层后,再强制刷新Display。2.根据权利要求1所述的限制截屏方法,其特征在于,所述步骤3中隐藏Display中属于限制截屏的安卓应用的图层的方式为:安卓兼容环境遍历Display,对于非新增或状态未改变的Display,选择Display中属于限制截屏的安卓应用的图层进行隐藏,或选择名称中含有限制截屏标记的图层进行隐藏,再将Display的状态设置为待刷新;对于新增的Display,选择不属于限制截屏的安卓应用的图层且名称中不含限制截屏标记的图层构建LayerStack完成Display的创建。3.根据权利要求2所述的限制截屏方法,其特征在...

【专利技术属性】
技术研发人员:温研
申请(专利权)人:北京麟卓信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1