一种安卓终端虚拟按键实现方法技术

技术编号:17345796 阅读:59 留言:0更新日期:2018-02-25 10:42
本发明专利技术针对智能终端用户按键在长时间使用后,系统按键失效或者不灵敏的问题,提供了一种安卓终端虚拟按键实现方法。首先只需要启动自定义的一个shell命令行,然后在Root环境下,调用执行系统自带的可执行文件input,并同时指定第一个参数为keyevent,第二个参数为按键对应的键值。

【技术实现步骤摘要】
一种安卓终端虚拟按键实现方法
本专利技术属于智能终端
,具体涉及一种安卓终端虚拟按键实现方法。
技术介绍
触屏智能终端经过长期使用后,经常会出现系统按键使用失效或不灵敏的情况。诸如返回键,菜单键,home键等的系统按键,通常设置在终端的固定位置,例如大都设置在屏幕最下方的位置,用户只能通过点击这个区域才能执行相应的功能,而这些按键往往也是用户使用最频繁的按键,长期使用后,导致此区域不灵敏或者失效。尽管屏幕其它大部分区仍灵敏好用,但是如果这些按键区域不能使用,将导致终端很难操作,用户只能花钱去换屏幕或者购买新的终端。如图1所述,现有技术中通过采用自定义的虚拟按键来代替系统按键,例如接收生成虚拟功能按键的命令(S11);根据所述生成虚拟功能按键的命令,生成虚拟功能按键,所述虚拟功能按键包括虚拟功能按键主体和虚拟功能按键呼出点(S12),即根据预先定义的虚拟功能按键的命令,根据焦点所在位置,发送不同的虚拟按键命令,从而代替了实体按键。现有技术中的上述技术方案存在如下缺点:一是需要预先定义好虚拟功能按键命令,这个操作需要系统权限才可以办到,并且需要将其预先集成到终端ROM中才行,只有和终端厂商合作或者终端厂商自己才能实现此类功能;二是预先定义好的虚拟按键对应的命令增加了存储成本,并且不利于维护;三是不能根据用户的心意,随意将虚拟按键功能放到屏幕上的任意位置。
技术实现思路
为克服上述现有技术的不足,本专利技术提供了一种安卓终端虚拟按键实现方法。首先只需要启动自定义的一个shell命令行,然后在Root环境下,调用执行系统自带的可执行文件input,并同时指定第一个参数为keyevent,第二个参数为按键对应的键值(不同的键对应不同键值,如返回键对应的数值为4,菜单键对应的数值为82,这些值是系统预先定义好,对外开放的,可以通过源码或SDK查询到)即可。所述安卓终端虚拟按键实现方法,包括以下步骤:S401、开始,点击悬浮按键;S402、展开悬浮窗,点击悬浮窗上的功能按键;S403、判断终端是否Root;如果判断结果为否,则执行S404,如果判断结果为是,则执行S405;S404、提示终端未Root,无法使用此功能,继续执行S4013;S405、申请Root权限,系统提示是否赋予该app权限,当Root权限申请成功后执行S407,当Root权限申请不成功则执行S406;S406、未获得Root权限,执行失败,继续执行S4013;S407、提取按键对应的键值码code值;S408、创建一个shell的执行环境;S409、在shell环境中执行指令;S4010、判断指令是否执行成功;当判断结果为否时,执行步骤S4011,当判断结果为是时,执行步骤S4012;S4011、指令执行失败,继续执行S4013;S4012、实现相应的系统按键功能;执行成功,系统会响应执行的系统按键功能;S4013、退出;此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。附图说明图1示出了现有技术中实现虚拟功能按键的方法流程图;图2示出了根据本专利技术的一个实施例的悬浮按键示意图;图3示出了根据本专利技术的一个实施例的悬浮窗示意图;图4示出了根据本专利技术的一个实施例的实现虚拟按键的方法流程图;图5示出了根据本专利技术的一个实施例的悬浮按键及悬浮窗启动流程图;图6示出了根据本专利技术的一个实施例的shell环境创建流程图。具体实施方式为更进一步阐述本专利技术为达成预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术提出的一种安卓终端虚拟按键实现方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。本专利技术所使用的术语如下:Android:中文名称为安卓,是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能终端和平板电脑,由Google公司和开放终端联盟领导及开发。Root权限:Root权限是指Unix类操作系统(包括Linux,Android)的系统管理员权限,类似于Windows系统中的Administrator(管理员)。安卓Root权限可以访问和修改你终端中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。可执行文件:可执行文件(executablefile)指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。shell:shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。它是linux的一个命令解释器,它解释由用户输入的命令并且把它们送到内核去执行。本专利技术中创建的一个命令行进程实现的功能和系统的shell相同,因此也命名为shell。虚拟按键:终端虚拟按键是指用于全触摸终端的虚拟于屏幕的一个按键,利用此按键可直接实现系统按键的功能。在本专利技术的一个具体实施方式中,提供一种在Android智能终端屏幕任意位置通过定义的虚拟按键代替系统实体按键的方法。如图2所示,方框中示出的悬浮按键可悬浮至屏幕的任意位置,并且可以悬浮在大部分终端应用界面之上。通过点击悬浮按键可弹出一个悬浮窗,同时将悬浮按键关闭。根据本专利技术的一个优选实施方式,如图3所示,悬浮窗尺寸可设置为供放置若干按键,这些按键分别对应不同的功能,点击其中的某一个按键可以实现相应的功能。在本专利技术的一个具体实施方式中,以实现系统按键为例,如点击返回键,例如参考图3左下角的“返回”按键。在本专利技术的一个具体实施方式中,在点击“返回”键后,判断终端是否Root成功,如果未Root,则提示用户要使用此功能首先需要Root,在本专利技术的一个具体实施方式中,提供可以Root终端的工具下载地址;接着虚拟按键流程将会退出,操作失败;如果Root成功了,则会由系统弹出赋予此应用的权限授予窗口,用户点击允许后,就获取到Root权限,否则提示未授予权限,操作执行失败。在获得Root权限后,会判断用户将要执行哪种按键功能,并将此按键对应的键值码提取出来,如返回键的键值码为KEYCODE_BACK,其对应的数值为4。这个值是系统预先定义好,对外开放的,可以通过源码或SDK查询到。接着使用“su”作为参数,创建一个shell的执行环境,在执行此指令时将会向系统索取Root权限,因为之前应用已经获取到了权限,所以这里不再提醒用户赋予应用权限。在创建成功后,将诸如“inputkeyevent按键键值码”这样的字符串命令通过封装好的方法传递到shell执行指令环境中,然后在shell环境中执行此条指令,其中“input”代表系统的可行性文件,它用来实现虚拟按键功能,一般存在于系统的/system/bin目录下。它是系统自带的一个输入按键程序,不同于的Java程序,它是一个二进制的可执行程序,只能在命令行环境进行执行。这个执行文件不对外开放,只有获取了系统权限或者Root权限的应用才可以调用它,所以本发本文档来自技高网...
一种安卓终端虚拟按键实现方法

【技术保护点】
一种安卓终端虚拟按键实现方法,其特征在于,包括以下步骤:S401、开始,点击悬浮按键;S402、展开悬浮窗,点击悬浮窗上的功能按键;S403、判断终端是否Root;如果判断结果为否,则执行S404,如果判断结果为是,则执行S405;S404、提示终端未Root,无法使用此功能,继续执行S4013;S405、申请Root权限,系统提示是否赋予该app权限,当Root权限申请成功后执行S407,当Root权限申请不成功则执行S406;S406、未获得Root权限,执行失败,继续执行S4013;S407、提取按键对应的键值码code值;S408、创建一个shell的执行环境;S409、在shell环境中执行指令;S4010、判断指令是否执行成功;当判断结果为否时,执行步骤S4011,当判断结果为是时,执行步骤S4012;S4011、指令执行失败,继续执行S4013;S4012、实现相应的系统按键功能;执行成功,系统会响应执行的系统按键功能;S4013、退出;此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。

【技术特征摘要】
1.一种安卓终端虚拟按键实现方法,其特征在于,包括以下步骤:S401、开始,点击悬浮按键;S402、展开悬浮窗,点击悬浮窗上的功能按键;S403、判断终端是否Root;如果判断结果为否,则执行S404,如果判断结果为是,则执行S405;S404、提示终端未Root,无法使用此功能,继续执行S4013;S405、申请Root权限,系统提示是否赋予该app权限,当Root权限申请成功后执行S407,当Root权限申请不成功则执行S406;S406、未获得Root权限,执行失败,继续执行S4013;S407、提取按键对应的键值码code值;S408、创建一个shell的执行环境;S409、在shell环境中执行指令;S4010、判断指令是否执行成功;当判断结果为否时,执行步骤S4011,当判断结果为是时,执行步骤S4012;S4011、指令执行失败,继续执行S4013;S4012、实现相应的系统按键功能;执行成功,系统会响应执行的系统按键功能;S4013、退出;此时可以选择关闭悬浮窗,也可以继续保留悬浮窗,继续执行其它按键功能。2.如权利要求1所述的安卓终端虚拟按键实现方法,其特征在于:点击悬浮按键后悬浮窗将会被展开,同时悬浮按键进行隐藏;悬浮窗关闭后,悬浮按键显示出来。3.如权利要求1或2所述的安卓终端虚拟按键实现方法,其特征在于:判断终端是否Root具体为:检测/system/bin/,/system/xbin/,/sbin/,/system/sd/xbin/,/data/local/xbin/,/data/local/bin/目录是否存在su文件。4.如权利要求1或2所述的安卓终端虚拟按键实现方法,其特征在于:判断终端是否Root具体为:在shell指令里执行“su”,在返回的输出系统中执行打印指令,如果返回成功,则代表Root成功。5.如权利要求1-4任一所述的安卓终端虚拟按键实现方法,悬浮按键和悬浮窗启动过程及工作流程如下:S501、启动程序;S502、启动客户端进程;此进程中包含了悬浮窗的所有设置功能;S503、由客户端进程启动一个AndroidService进程;S504、在Service进程中分别创建悬浮按键和悬浮窗;S505、Service进程在后台一直保持运行,显示悬浮按键,隐藏悬浮窗;S506、判断是否点击悬浮按键;如果判断结果为否,则执行S507;如果判断结果为是,则执行S508;S507、待机运行,继续监听按键事件,返回至S505;如果没有点击事件发生,悬浮按键将保持待机运行,直到监听到按键事件;S508、显示悬浮窗,隐藏悬浮按键;收到点击事件,将悬浮按键隐藏,并实现悬浮窗;S509、展示悬浮窗支持的各种按键功能;S5010、点击屏幕,判断点击的位置是否是悬浮窗上的虚拟功能键;如果判断为是,则执行S5011;如果判断为否,则执行S5013;S5011、执行对应的功能;S5012、待机运行,继续监听按键事件;S5013、退出悬浮窗,将其隐藏,展示悬浮按键;返回S505。6.如权利要求5...

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

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

1