一种利用JAVA反射机制进行截屏的方法技术

技术编号:17485909 阅读:23 留言:0更新日期:2018-03-17 10:19
本发明专利技术提供一种利用JAVA反射机制进行截屏的方法,利用JAVA发射机制在Android智能终端屏幕任意位置通过定义的虚拟按键代替长按系统组合按键实现截屏,将实现的功能以悬浮窗上的虚拟按键的形式进行表现,可以悬浮到屏幕的任意位置,并且可以显示在几乎所有的终端应用界面之上,这样就可以在任何情况下通过操作虚拟按键来代替按压系统组合按键实现截屏。

A method of using the JAVA reflection mechanism to screen the screen

The present invention provides a method for screen using JAVA reflection mechanism, the use of JAVA emission mechanism in any position intelligent terminal screen Android through virtual keys defined by the system instead of a long key combination to achieve the screenshot, will achieve the function of performance in order to form a virtual button on the window of the suspension, suspension to the screen can be anywhere. And almost all of the above can be displayed in the terminal application interface, so you can through the operation of the virtual keys instead of pressing the key combination to achieve the screenshot system in any case.

【技术实现步骤摘要】
一种利用JAVA反射机制进行截屏的方法
本专利技术属于智能终端
,具体涉及一种利用JAVA反射机制进行截屏的方法。
技术介绍
截屏功能是终端的常用功能之一。终端出厂时提供的截屏操作方式通常需要同时长按两个系统按键,例如,长按电源键+Home键,或者长按电源键+音量上键(或下键),或者其他两个系统组合键。智能终端在经过一段时间的使用之后,容易出现某些实体按键或者虚拟按键使用失效或不灵敏的情况,例如,实体电源键,实体或系统虚拟返回键,实体或系统虚拟Home键等。虽然终端其他方面都还很好,但是因为某些系统按键不灵敏或者失效的问题,用户就不得不花钱去更换按键,甚至购买新的终端。另外,使用长按组合键的方式进行截屏,操作需要一定的技巧,要两个手一起操作,同时按下按键才行,操作并不是特别方便。如图1所述,现有技术中公开了一种截屏功能的方法,包括:当检测到所述触摸屏被触摸时,获取触摸时长、触摸区域以及所述移动终端的运动状态(101);当所述触摸时长大于预设时长、所述触摸区域固定不变,以及所述移动终端的运动状态满足预设条件时,启动截屏功能。通过本专利技术启动截屏功能时无需双手操作单手即可完成,使启动截屏功能的操作更简便快捷(102)。即用户通过单手长时间触摸屏幕某块固定的区域,触摸的时长要大于预设的时间,并且当前的移动终端处于预设的运动状态时,启动截屏功能。现有技术中的上述技术方案存在如下缺点:一是长时间触摸的固定区域如果不是程序预设的区域,而是屏幕上的一块随便区域就有可能导致用户的误操作,比如,手攥着终端,手指长时间会接触屏幕的某一块固定区域,就可以看作条件满足了,这就可能会引起用户的误操作;二是移动终端的运动状态得满足预设条件,要监控移动终端的运动状态,可能需要监听终端上的各种传感器,这个操作步骤将会非常繁琐;终端的各种传感器非常多,如果稍有遗漏,可能就会引起大的bug;三是对于普通的第三方应用程序来说,是没有权限启动截屏功能的,系统没有提供对外开放的接口,这个是系统为安全起见做的强制措施,除非是终端厂商自己才能做到。
技术实现思路
为克服上述现有技术的不足,本专利技术提供了一种利用JAVA反射机制进行截屏的方法。首先不需要和终端厂商合作,只需要终端Root即可,也不用长时间触摸终端固定区域达到一定的预设时间,以及不用判断当前的终端处于何种运动状态,只需要启动自定义的shell命令行执行环境,然后在命令行中执行app_process命令,通过反射技术调用系统方法injectInputEvent(Android4.1及以上版本)或者injectKeyEvent(Android4.1以下),即可实现截屏(这些都发生在后台,对用户都是透明的),全程不需要用户过多的参与。并且这个功能模拟成一个虚拟按键,通过悬浮窗的方式展现给用户(悬浮窗的好处是可以悬浮在屏幕的任意位置,用户可以随意拖动,悬浮窗上面可以放置任意多个虚拟按钮,每个按钮可以对应我们需要的任意功能,如某个按钮可以实现返回键功能,另一个按钮可以截屏功能等等),从而可以使用户方便快捷的进行操作。所述利用JAVA反射机制进行截屏的方法,包括以下步骤:S401、开始,点击悬浮按键;S402、展开悬浮窗,点击悬浮窗上的截屏功能按键;S403、判断终端是否Root;如果判断结果为否,则执行S404,如果判断结果为是,则执行S405;S404、提示终端未Root,无法使用此功能,继续执行S4016;S405、提取按键对应的action和code值;S406、申请Root权限,系统提示是否赋予该app权限,当Root权限申请成功后执行S408,当Root权限申请不成功则执行S407;S407、未获得Root权限,执行失败,继续执行S4016;S408、执行adbshell指令;S409、判断指令是否执行成功;当判断结果为否时,执行步骤S4010,当判断结果为是时,执行步骤S4011;S4010、指令执行失败,继续执行S4016;S4011、调用执行自定义的xxx.jar文件;S4012、通过xxx.jar的main函数,执行实现类,反射调用注入函数;S4013、判断注入函数是否执行成功,判断结果为否,则执行S4014,判断结果为是,则执行S4015;S4014、提示执行失败,执行S4016;S4015、实现截屏功能;S4016、退出:执行退出功能,此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明图1示出了现有技术中实现终端截屏的方法流程图;图2示出了根据本专利技术的一个实施例的悬浮按键示意图;图3示出了根据本专利技术的一个实施例的悬浮窗示意图;图4示出了根据本专利技术的一个实施例的实现截屏的方法流程图;图5示出了根据本专利技术的一个实施例的悬浮按键及悬浮窗启动流程图;图6示出了根据本专利技术的一个实施例的shell环境创建流程图。具体实施方式为更进一步阐述本专利技术为达成预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术提出的一种利用JAVA反射机制进行截屏的方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。本专利技术所使用的术语如下:Android:中文名称为安卓,是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能终端和平板电脑,由Google公司和开放终端联盟领导及开发。Root权限:Root权限是指Unix类操作系统(包括Linux,Android)的系统管理员权限,类似于Windows系统中的Administrator(管理员)。安卓Root权限可以访问和修改你终端中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。可执行文件:可执行文件(executablefile)指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。shell:shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。它是linux的一个命令解释器,它解释由用户输入的命令并且把它们送到内核去执行。本专利技术中创建的一个命令行进程实现的功能和系统的shell相同,因此也命名为shell。app_process:是放在Android系统目录下的一个可执行二进制文件,利用它可以在shell命令行窗口执行一些预置的功能,例如系统的am,pm指令都是通过它实现的。虚拟按键:终端虚拟按键是指用于全触摸终端的虚拟于屏幕的一个按钮,利用此按钮可直接实现系统按键的功能。JAVA反射机制:JAVA反射机制是在程序运行状态中,对于任意一个类,都可以获取到这个类的所有属性和方法;对于任意一个对象,都能够调用到它的任意一个方法和属性。这种动态获取类的信息以及动态调用对象的方法的功能称为java语言的反射机制。在本专利技术的一个具体实施方式中,提供一种在Android智能终端屏幕任意位置通过定义的虚拟按本文档来自技高网
...
一种利用JAVA反射机制进行截屏的方法

【技术保护点】
一种利用JAVA反射机制进行截屏的方法,其特征在于,包括以下步骤:S401、开始,点击悬浮按键;S402、展开悬浮窗,点击悬浮窗上的截屏功能按键;S403、判断终端是否Root;如果判断结果为否,则执行S404,如果判断结果为是,则执行S405;S404、提示终端未Root,无法使用此功能,继续执行S4016;S405、提取按键对应的action和code值;S406、申请Root权限,系统提示是否赋予该app权限,当Root权限申请成功后执行S408,当Root权限申请不成功则执行S407;S407、未获得Root权限,执行失败,继续执行S4016;S408、执行adb shell指令;S409、判断指令是否执行成功;当判断结果为否时,执行步骤S4010,当判断结果为是时,执行步骤S4011;S4010、指令执行失败,继续执行S4016;S4011、调用执行自定义的xxx.jar文件;S4012、通过xxx.jar的main函数,执行实现类,反射调用注入函数;S4013、判断注入函数是否执行成功,判断结果为否,则执行S4014,判断结果为是,则执行S4015;S4014、提示执行失败,执行S4016;S4015、实现截屏功能;S4016、退出:执行退出功能,此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。...

【技术特征摘要】
1.一种利用JAVA反射机制进行截屏的方法,其特征在于,包括以下步骤:S401、开始,点击悬浮按键;S402、展开悬浮窗,点击悬浮窗上的截屏功能按键;S403、判断终端是否Root;如果判断结果为否,则执行S404,如果判断结果为是,则执行S405;S404、提示终端未Root,无法使用此功能,继续执行S4016;S405、提取按键对应的action和code值;S406、申请Root权限,系统提示是否赋予该app权限,当Root权限申请成功后执行S408,当Root权限申请不成功则执行S407;S407、未获得Root权限,执行失败,继续执行S4016;S408、执行adbshell指令;S409、判断指令是否执行成功;当判断结果为否时,执行步骤S4010,当判断结果为是时,执行步骤S4011;S4010、指令执行失败,继续执行S4016;S4011、调用执行自定义的xxx.jar文件;S4012、通过xxx.jar的main函数,执行实现类,反射调用注入函数;S4013、判断注入函数是否执行成功,判断结果为否,则执行S4014,判断结果为是,则执行S4015;S4014、提示执行失败,执行S4016;S4015、实现截屏功能;S4016、退出:执行退出功能,此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。2.如权利要求1所述的利用JAVA反射机制进行截屏的方法,其特征在于:点击悬浮按键后悬浮窗将会被展开,同时悬浮按键进行隐藏;悬浮窗关闭后,悬浮按键显示出来。3.如权利要求1或2所述的利用JAVA反射机制进行截屏的方法,其特征在于:判断终端是否Root具体为:检测/system/bin/,/system/xbin/,/sbin/,/system/sd/xbin/,/data/local/xbin/,/data/local/bin/目录是否存在su文件;或者在shell指令里执行“su”,在返回的输出系统中执行打印指令,如果返回成功,则代表Root成功。4.如权利要求1-3任一所述的利用JAVA反射机制进行截屏的方法,其特征在于:预先定义action具有单击,长按两种值,code为系统各个按键的键值码;计算出悬浮窗点击的按钮将要对应的系统按键的action和code值,action和code拼接成字符串传给xxx.jar文件处理;通过判断不同的机型,选择不同的按键组合方式。5.如权利要求1-4任一所述的利用JAVA反射机制进行截屏的方法,其特征在于:在创建的shell命令行环境中执行“execapp_process库所在的路径库中实现功能的类名”指令,接着再将之前生成的action和code拼接成字符串传给此进程执行,在执行之前需要设置执行的环境变量,在Android4.0及以上版本使用exportLD_LIBRARY_PATH进行设置,在Android4.0以下版本使用exportCLASSPATH进行设置。6.如权利要求1-5任一所述的利用JAVA反射机制进行截屏的方法,悬浮按键和悬浮窗启动过程及工作流程如下:S501、启动程序;S502、启动客户端进程;此进程中包含了悬浮窗的所有设置功能;S503、由客户端进程启动一个AndroidService进程;S504、在Service进程中分别创建悬浮按键和悬浮窗;S505、Service进程在后台一直保持运行,显示悬浮按键,隐藏悬浮窗;S506、判断是否点击悬浮按键;如果判断结果为否,则执行S507;如果判断结果为是,则执行S508;S507、待机运行,继续监听按键事件,返回至S505;如果没有点击事件发生,悬浮按键将保持待机运行,直到监听到按键事件;S508、显示悬浮窗,隐藏悬浮按键;收到点击事件,将悬浮按键隐藏,并实现悬浮窗;S509、展...

【专利技术属性】
技术研发人员:肖剑锋
申请(专利权)人:竞技世界北京网络技术有限公司
类型:发明
国别省市:北京,11

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

1