系统属性的反馈方法、装置、终端及存储介质与流程

文档序号:18752555发布日期:2019-09-24 21:21阅读:194来源:国知局
系统属性的反馈方法、装置、终端及存储介质与流程

本申请实施例涉及终端技术领域,特别涉及一种系统属性的反馈方法、装置、终端及存储介质。



背景技术:

用户使用应用程序在各类平台上发布内容时,最终显示的内容通常会附带终端型号。比如,使用社交应用程序发布消息时,社交平台上显示的消息会附带“来自xx(终端型号)的手机”一类的信息。

为了实现显示终端型号的功能,应用程序需要从系统处获取型号信息,从而将发布的内容以及型号信息一同发送至服务器,由服务器根据该型号信息确定出终端型号。



技术实现要素:

本申请实施例提供了一种系统属性的反馈方法、装置、终端及存储介质。所述技术方案如下:

一方面,本申请实施例提供了一种系统属性的反馈方法,所述方法包括:

接收应用程序的属性获取请求,所述属性获取请求是所述应用程序调用系统接口时发送的,所述属性获取请求用于请求获取目标系统属性的属性值;

若所述应用程序不属于预设应用程序,则向所述应用程序反馈所述目标系统属性的第一属性值;

若所述应用程序属于所述预设应用程序,则向所述应用程序反馈所述目标系统属性的第二属性值,所述第一属性值与所述第二属性值不同。

另一方面,本申请实施例提供了一种系统属性的反馈装置,所述装置包括:

接收模块,用于接收应用程序的属性获取请求,所述属性获取请求是所述应用程序调用系统接口时发送的,所述属性获取请求用于请求获取目标系统属性的属性值;

第一反馈模块,用于当所述应用程序不属于预设应用程序时,向所述应用程序反馈所述目标系统属性的第一属性值;

第二反馈模块,用于当所述应用程序属于所述预设应用程序时,向所述应用程序反馈所述目标系统属性的第二属性值,所述第一属性值与所述第二属性值不同。

另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的系统属性的反馈方法

另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的系统属性的反馈方法。

另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述方面所述的系统属性的反馈方法。

本申请实施例中,接收到应用程序的属性获取请求后,确定该应用程序是否属于预设应用程序,若不属于,则向应用程序反馈目标系统属性的第一属性值,若不属于,则向应用程序反馈不同于第一属性值的第二属性值;相较于相关技术中仅能够反馈统一属性值,采用本申请实施例提供的方法,能够针对不同的应用程序反馈不同的属性值,比如,通过为定制终端设置与普通终端相同的第一属性值,并为定制终端设置特有的第二属性值,使得特定应用程序能够根据获取到的第二属性值,区分普通终端与定制终端,有助于提高终端间的辨识度。

附图说明

图1和2示出了本申请一个示例性实施例提供的终端的结构方框图;

图3示出了本申请一个示例性实施例示出的系统属性的反馈方法的流程图;

图4是图3所示系统属性的反馈方法的实施示意图;

图5示出了本申请另一个示例性实施例示出的系统属性的反馈方法的流程图;

图6是应用于安卓操作系统时系统属性的反馈方法的方法流程图;

图7示出了本申请一个实施例提供的系统属性的反馈装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

参考图1和图2所示,其示出了本申请一个示例性实施例提供的终端100的结构方框图。该终端100可以是手机、平板电脑、笔记本电脑和电子书等。本申请中的终端100可以包括一个或多个如下部件:中央处理器110、存储器120和显示屏130。

处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)、神经网络处理器(neural-networkprocessingunit,npu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责触摸显示屏130所需要显示的内容的渲染和绘制;npu用于实现人工智能(artificialintelligence,ai)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块芯片进行实现。

存储器120可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端100的使用所创建的数据(比如音频数据、电话本)等。

以操作系统为安卓(android)系统为例,存储器120中存储的程序和数据如图1所示,存储器120中存储有linux内核层220、系统运行库层240、应用框架层260和应用层280。linux内核层220为终端100的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、wi-fi驱动、电源管理等。系统运行库层240通过一些c/c++库来为android系统提供了主要的特性支持。如sqlite库提供了数据库的支持,opengl/es库提供了3d绘图的支持,webkit库提供了浏览器内核的支持等。在系统运行库层240中还提供有android运行时库242(androidruntime),它主要提供了一些核心库,能够允许开发者使用java语言来编写android应用。应用框架层260提供了构建应用程序时可能用到的各种api,开发者也可以通过使用这些api来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层280中运行有至少一个应用程序,这些应用程序可以是操作系统自带的联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的应用程序,比如即时通信程序、相片美化程序等。

以操作系统为ios系统为例,存储器120中存储的程序和数据如图2所示,ios系统包括:核心操作系统层320(coreoslayer)、核心服务层340(coreserviceslayer)、媒体层360(medialayer)、可触摸层380(cocoatouchlayer)。核心操作系统层320包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层340的程序框架所使用。核心服务层340提供给应用程序所需要的系统服务和/或程序框架,比如基础(foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层360为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(airplay)接口等。可触摸层380为应用程序开发提供了各种常用的界面相关的框架,可触摸层380负责用户在终端100上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(userinterface,ui)框架、用户界面uikit框架、地图框架等等。

在图2所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层340中的基础框架和可触摸层380中的uikit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和ui无关。而uikit框架提供的类是基础的ui类库,用于创建基于触摸的用户界面,ios应用程序可以基于uikit框架来提供ui,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。

显示屏130用于显示用户界面的显示组件。可选的,该显示屏130还具有触控功能,用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作。显示屏130通常设置在终端130的前面板。显示屏130可被设计成为全面屏、曲面屏、异型屏、双面屏或折叠屏。显示屏130还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本实施例对此不加以限定。

除此之外,本领域技术人员可以理解,上述附图所示出的终端100的结构并不构成对终端100的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端100中还包括射频电路、输入单元、传感器、音频电路、无线保真(wirelessfidelity,wifi)模块、电源、蓝牙模块等部件,在此不再赘述。

相关技术中,终端厂商会对终端进行定制,得到定制终端,且为了避免对硬件配置相同的非定制终端和定制终端进行重复认证测试,定制终端与非定制终端通常具备相同的系统属性,比如相同的终端型号。

然而,定制终端与非定制终端采用相同的系统属性会影响终端之间的辨识度。比如,对于安装有社交应用程序的定制终端和非定制终端,当使用社交应用程序发布消息时,由于社交应用程序获取到的系统属性保持一致,因此使用定制终端和非定制终端发布的消息将显示来自与同一终端。

为了提高定制终端与非定制终端间的辨识度,终端厂商需要为非定制终端和定制终端设置不同的系统属性,比如设置不同的终端型号,但是这将造成重复认证测试,增加认证测试的工作量。

而本申请实施例提供的系统属性的反馈方法中,接收到应用程序的属性获取请求后,终端确定该应用程序是否属于预设应用程序,若不属于,则向应用程序反馈目标系统属性的第一属性值,若不属于,则向应用程序反馈不同于第一属性值的第二属性值,使得应用程序能够根据不同的属性值对终端进行区分。

采用上述方法,终端厂商可以预先为定制终端和非定制终端设置相同的第一属性值,并为定制终端设置特有的第二属性值。对于同一应用程序(属于预设应用程序)的定制终端和非定制终端,应用程序从非定制终端处获取第一属性值,从定制终端处获取不同于第一属性值的第二属性值,从而基于获取到的不同属性值区分非定制终端或定制终端,提高终端之间的辨识度。

本申请实施例提供的系统属性的反馈方法可应用于如下几种应用场景:

一、使用应用程序发布内容时显示终端型号。

使用应用程序发布内容时,应用程序需要获取当前终端的型号信息,从而将该型号信息与待发布内容一同发送至应用程序的后台服务器。后台服务器接收到型号信息与待发布内容后,根据型号信息确定终端型号,从而将待发布内容以及终端型号一同发布至内容分享平台。将本申请实施例提供的系统属性的反馈方法应用与上述应用场景时,终端厂商预先为非定制终端和定制终端设置统一的第一终端型号,并为定制终端设置特有的第二终端型号(该终端型号无需进行认证测试,仅为终端厂商与应用程序开发方预先约定)。对于安装有应用程序的非定制终端,通过应用程序发布内容时,待发布内容与第一型号信息发送至后台服务器,后台服务器根据第一型号信息确定出第一终端型号,内容分享平台最终显示待发布内容有第一终端型号的终端发布;而对于安装有应用程序的定制终端,通过应用程序发布内容时,待发布内容与第二型号信息发送至后台服务器,后台服务器根据第二型号信息确定出第二终端型号,内容分享平台最终显示待发布内容有第二终端型号的终端发布。

二、终端测试过程中的版本保密。

终端使用测试软件进行跑分时,测试软件会将获取到的终端型号以及跑分数据上报至服务器,由服务器根据上报的数据对终端性能榜单进行更新。在终端发布前的测试阶段,为了避免造成终端版本信息泄露,可以应用本申请实施例提供的系统属性的反馈方法。在一种可能的实施方式中,对于终端厂商设置为测试终端设置第一终端型号以及第二终端型号,并将测试软件设置为预设应用程序,其中,第二终端型号可以是已发布终端的终端型号。当使用测试软件对测试终端进行测试时,测试终端向测试软件反馈第二型号信息,由测试终端将第二型号信息和跑分上传至服务器。由于该服务器根据第二型号信息确定出该终端为已发布终端,因此能够有效避免终端版本信息泄露。

当然,本申请实施例提供的系统属性的反馈方法还可以用于其它需要获取系统属性的场景,上述应用场景仅作为示意性说明,并不对此构成限定。

请参考图3,其示出了本申请一个示例性实施例示出的系统属性的反馈方法的流程图。本实施例以该方法应用于图1或2所示的终端100来举例说明。该方法包括:

步骤301,接收应用程序的属性获取请求,属性获取请求是应用程序调用系统接口时发送的,属性获取请求用于请求获取目标系统属性的属性值。

其中,该系统接口为操作系统提供给应用程序,供应用程序通过接口调用方式获取系统属性的接口,且不同的系统属性对应不同的系统接口。在一种可能的实施方式中,该目标系统属性包括但不限于如下至少一种:终端型号、终端制造商、终端品牌。

可选的,不同应用场景下,触发该属性获取请求的时机不同。在上述第一种应用场景下,该属性获取请求是通过应用程序发布内容时,应用程序调用系统接口时触发;在上述第二种应用场景下,该属性获取请求是通过应用程序进行终端测试过程中,应用程序调用系统接口时触发。

在一个示意性的例子中,如图4所示,使用终端41中的应用程序“xx微博”发布消息过程中,当接收到对发布按钮的点击信号时,终端41即接收到“xx微博”的型号获取请求;使用终端41中的应用程序“xx聊天”发布消息过程中,当接收到对发布按钮的点击信号时,终端41即接收到“xx聊天”的型号获取请求。

在一种可能的实施方式中,接收属性获取请求后,终端获取应用程序的应用标识,并根据应用标识确定该应用程序是否属于预设应用程序,若属于,则执行下述步骤303,若不属于,则执行下述步骤302,其中,该预设应用程序由终端厂商预先设定。

步骤302,若应用程序不属于预设应用程序,则向应用程序反馈目标系统属性的第一属性值。

在一种可能的实施方式中,该第一属性值为目标系统属性的默认属性值,且该第一属性值经过认证测试。在一个示意性的例子中,对于定制终端而言,定制终端的第一属性值即为非定制终端的属性值。

可选的,应用程序将获取到的第一属性值发送至应用程序的后台服务器,由后台服务器根据该第一属性值显示相应的属性信息。

示意性的,如图4所示,由于应用程序“xx聊天”不属于预设应用程序,因此“xx聊天”获取到终端41反馈的第一型号“mobile1244”,并将第一型号“mobile1244”以及待发布消息“换新手机啦”发送至第一服务器42(“xx聊天”的后台服务器)。第一服务器42根据第一型号“mobile1244”确定终端型号为“xx手机”,从而在发布的消息后显示“来自xx手机”的字段。

步骤303,若应用程序属于预设应用程序,则向应用程序反馈目标系统属性的第二属性值,第一属性值与第二属性值不同。

可选的,第二属性值为终端开发过程中预先设置的属性值,且第二属性值未经过认证测试。为了使预设应用程序的后台服务器能够根据第二属性值识别出终端的型号,在一种可能的实施方式中,预设应用程序的后台服务器预先存储第二属性值与属性信息之间的对应关系,该对应关系由终端厂商提供。

示意性的,如图4所示,由于应用程序“xx微博”属于预设应用程序,因此“xx微博”获取到终端41反馈的第二型号“mobile1245”,并将第二型号“mobile1245”以及待发布消息“换新手机啦”发送至第二服务器43(“xx微博”的后台服务器)。第二服务器43根据第一型号“mobile1245”确定终端型号为“xx手机定制版”,从而在发布的消息后显示“来自xx手机定制版”的字段。

综上所述,本申请实施例中,接收到应用程序的属性获取请求后,确定该应用程序是否属于预设应用程序,若不属于,则向应用程序反馈目标系统属性的第一属性值,若不属于,则向应用程序反馈不同于第一属性值的第二属性值;相较于相关技术中仅能够反馈统一属性值,采用本申请实施例提供的方法,能够针对不同的应用程序反馈不同的属性值,比如,通过为定制终端设置与普通终端相同的第一属性值,并为定制终端设置特有的第二属性值,使得特定应用程序能够根据获取到的第二属性值,区分普通终端与定制终端,有助于提高终端间的辨识度。

在一种可能的实施方式中,当应用程序不属于预设应用程序时,终端(系统)按照传统方式向应用程序反馈第一属性值;而当应用程序属于预设应用程序时,终端(系统)通过反射机制将第一属性值修改为第二属性值,从而将第二属性值反馈给应用程序,下面采用示意性的实施例进行说明。

请参考图5,其示出了本申请另一个示例性实施例示出的系统属性的反馈方法的流程图。本实施例以该方法应用于图1或2所示的终端100来举例说明。该方法包括:

步骤501,接收应用程序的属性获取请求,属性获取请求是应用程序调用系统接口时发送的,属性获取请求用于请求获取目标系统属性的属性值。

本步骤的实施方式可以参考上述步骤301,本实施例在此不再赘述。

步骤502,获取系统配置文件。

其中,该系统配置文件中包括各项系统属性对应的属性值。

由于并非所有终端的目标系统属性同时包含第一属性值和第二属性值,比如,对于定制终端,其目标系统属性同时包含第一属性值和第二属性值,而对于非定制终端,其目标系统属性仅包含一个属性值(即第一属性值)。因此,在一种可能的实施方式中,终端接收到属性获取请求后,首先获取系统配置文件,并检测系统配置文件中是否包含(第二属性值对应的)第二属性字段。若系统配置文件中包含第二属性字段,表明终端配置有两个属性值(各个终端的系统配置文件中均包含第一属性字段),并执行步骤504;若系统配置文件中不包含第二属性字段,表明终端仅配置有一个属性值,并执行步骤503。

步骤503,若系统配置文件中不包括第二属性字段,则向应用程序反馈目标系统属性的第一属性值。

当系统配置文件中不包括第二属性字段时,由于目标系统属性仅配置有一个属性值,因此终端将该属性值(即第一属性值)反馈给应用程序。

步骤504,若系统配置文件中包括第二属性字段,则确定应用程序是否属于预设应用程序。

当系统配置文件中包括第二属性字段时,为了确定向应用程序反馈何种属性值,可选的,终端进一步获取应用程序的应用标识,并根据该应用标识确定应用程序是否属于预设应用程序。若不属于,则执行步骤505;若属于,则执行步骤506。

在一种可能的实施方式中,终端从服务器(终端对应的服务器)处下载应用程序列表,该应用程序列表中包括预设应用程序的应用标识。当系统配置文件中包括第二属性字段时,终端检测应用程序的应用标识是否属于该应用程序列表。若属于,则确定该应用程序为预设应用程序,反之确定该应用程序不是预设应用程序。

可选的,该应用程序列表由服务器更新维护,相应的,终端按照预定更新策略(比如每隔预定时间间隔,或者,每次安装新的应用程序时)从服务器处下载应用程序列表。其中,当目标应用程序对应的后台服务器存储有第二属性值与属性信息之间的对应关系时(即后台服务器能够根据目标应用程序发送的第二属性值获取相应的属性信息),该服务器即将目标应用程序的应用标识更新至应用程序列表。

步骤505,若应用程序不属于预设应用程序,则向应用程序反馈目标系统属性的第一属性值。

本步骤的实施方式可以参考上述步骤302,本实施例在此不再赘述。

步骤506,若应用程序属于预设应用程序,则通过反射方法获取目标系统属性所属的公共字段,得到目标属性数组,目标属性数组中包括目标系统属性。

当应用程序属于预设应用程序时,终端需要通过反射机制修改目标系统属性的属性值。在一种可能的实施方式中,终端获取目标系统属性的属性值时,首先确定目标系统属性对应的属性字段,然后根据该属性字段获取相应的属性值。因此,本申请实施例中,修改目标系统属性的属性值前,终端首先通过反射方法获取包含目标系统属性的目标属性数组,该目标属性数组中包括目标系统属性所属class对象所表示类或接口的所有可访问公共(public)字段。

在一种可能的实施方式中,该目标属性数组中包括各个系统属性对应的属性字段,该属性字段指向属性值。比如,该目标属性数组中包括终端型号对应的属性字段、终端品牌对应的属性字段、终端制造商对应的属性字段,其中,终端型号为目标系统属性。

步骤507,将目标属性数组中目标系统属性的属性字段由第一属性字段反射修改为第二属性字段,第一属性字段对应第一属性值,第二属性字段对应第二属性值。

在一种可能的实施方式中,目标属性数组中目标系统属性的属性字段默认为第一属性字段,由于第一属性字段(指向)对应第一属性值,因此终端默认获取目标系统属性的第一属性值,而本实施例中,为了使终端最终反馈目标系统属性的第二属性值,终端将目标系统属性的属性字段由第一属性字段反射修改为第二属性字段。

在一个示意性的例子中,终端将目标属性数组中终端型号的第一属性字段model=xx.xx.model001修改为第二属性字段model=xx.xx.model002。

步骤508,根据第二属性字段获取第二属性值,并向应用程序反馈第二属性值。

在一种可能的实施方式中,终端根据反射修改后目标系统属性对应的第二属性字段,从系统配置文件中获取第二属性字段对应的第二属性值,从而将第二属性值反馈给应用程序。

在一个示意性的例子中,系统配置文件中包括第一属性字段xx.xx.model001对应的第一属性值mobile1244,以及第一属性字段xx.xx.model002对应的第一属性值mobile1245,反射修改前,向应用程序反馈的属性值为mobile144,而反射修改后,向应用程序反馈的属性值为mobile145。

本实施例中,当预定应用程序请求获取目标系统属性的属性值时,终端通过反射机制动态修改目标系统属性的属性字段,以便根据修改后的属性字段获取不同于默认属性值的特定属性值,并将该特定属性值反馈给预定应用程序,达到针对特定应用程序反馈特定属性值的效果。

由于并非所有的系统属性均配置有两个属性值,因此在一种可能的实施方式中,接收应用程序的属性获取请求之后,终端检测该属性获取请求对应的目标系统属性是否属于预设系统属性,若属于,则进一步确定应用程序是否属于预设应用程序;若不属于,则向应用程序反馈目标系统属性的第一属性值。其中,预设系统属性为具有至少两个属性值的系统属性。

此外,为了使更多的应用程序能够根据第二属性值显示相应属性信息,在一种可能的实施方式中,当应用程序不属于预设应用程序时,终端向应用程序反馈目标系统属性的第一属性值之后,向服务器发送应用添加请求,该应用添加请求中包含应用程序的应用标识,服务器用于根据应用程序的应用标识更新应用程序列表。

可选的,该应用添加请求由用户手动触发,或者,由终端自动触发;并且,服务器接收到应用添加请求后,根据应用添加请求中的应用标识,与该应用程序的后台服务器进行交互,并在后台服务器存储第二属性值与属性信息之间的对应关系后(即后台服务器能够识别第二属性值,并确定出相应的属性信息),将应用程序的应用标识更新至应用程序列表。

可选的,不同操作系统下使用的反射机制不同,下面以终端操作系统为安卓操作系统,目标系统属性为终端型号model(build类中的一种属性)且第一属性字段为ro.product.model,第二属性字段为ro.product.*_model为例进行说明。请参考图6,其示出了本申请另一个示例性实施例示出的系统属性的反馈方法的流程图。

步骤601,接收应用程序的属性获取请求,属性获取请求由应用程序的安卓安装包(androidpackage,apk)调用系统接口时发送,属性获取请求用于请求获取终端型号的属性值。

当需要获取目标系统属性的属性值时,应用程序的apk即调用相应的系统接口。比如,当需要获取终端型号时,apk即调用获取终端型号的系统接口。

步骤602,获取build.prop文件。

在一种可能的实施方式中,操作系统获取build.prop文件后,检测build.prop文件中是否包括ro.product.*_model,若包括,则执行步骤604,若不包括,则执行步骤603。

步骤603,若build.prop文件中不包括ro.product.*_model,则向应用程序反馈终端型号的第一属性值。

在一种可能的实施方式中,操作系统根据ro.product.model,从build.prop文件中获取对应的第一属性值,并反馈给应用程序。

步骤604,若build.prop文件中包括ro.product.*_model,则确定应用程序是否属于预设应用程序。

在一种可能的实施方式中,当build.prop文件中包括ro.product.*_model时,操作系统中的活动管理服务(activitymanagerservice,ams)获取apk包名,并检测该apk包名是否属于预定apk包名,若属于,则确定应用程序属于预设应用程序,并执行步骤606,若不属于,则执行步骤605。

步骤605,若应用程序不属于预设应用程序,则向应用程序反馈终端型号的第一属性值。

与上述步骤603类似的,操作系统根据ro.product.model,从build.prop文件中获取对应的第一属性值,并反馈给应用程序。

步骤606,若应用程序属于预设应用程序,则通过getfields方法获取终端型号所属的公共字段,得到目标属性数组,目标属性数组中包括终端型号。

在一种可能的实施方式中,ams通过getfields获取model所属public字段,得到一个包含若干field对应的目标属性数组field[],该目标属性数组中,包含终端型号对应的第一属性字段model=ro.product.model。

步骤607,将目标属性数组中目标系统属性的属性字段由ro.product.model反射修改为ro.product.*_model,ro.product.model对应第一属性值,ro.product.*_model对应第二属性值。

进一步的,ams将目标系统属性对应的第一属性字段model=ro.product.model反射修改为第二属性字段model=ro.product.*_model。

步骤608,从build.prop中获取ro.product.*_model对应的第二属性值,并向应用程序反馈第二属性值。

完成反射修改后,ams即可根据ro.product.*_model从bulid.prop文件中获取第二属性值,并反馈给应用程序。

请参考图7,其示出了本申请一个实施例提供的系统属性的反馈装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:

接收模块701,用于接收应用程序的属性获取请求,所述属性获取请求是所述应用程序调用系统接口时发送的,所述属性获取请求用于请求获取目标系统属性的属性值;

第一反馈模块702,用于当所述应用程序不属于预设应用程序时,向所述应用程序反馈所述目标系统属性的第一属性值;

第二反馈模块703,用于当所述应用程序属于所述预设应用程序时,向所述应用程序反馈所述目标系统属性的第二属性值,所述第一属性值与所述第二属性值不同。

可选的,所述第二反馈模块703,包括:

获取单元,用于若所述应用程序属于所述预设应用程序,则通过反射方法获取所述目标系统属性所属的公共字段,得到目标属性数组,所述目标属性数组中包括所述目标系统属性;

修改单元,用于将所述目标属性数组中所述目标系统属性的属性字段由第一属性字段反射修改为第二属性字段,所述第一属性字段对应所述第一属性值,所述第二属性字段对应所述第二属性值;

反馈单元,用于根据所述第二属性字段获取所述第二属性值,并向所述应用程序反馈所述第二属性值。

可选的,所述反馈单元,用于:

从系统配置文件中获取所述第二属性字段对应的所述第二属性值,所述系统配置文件中包括各项系统属性对应的属性值。

可选的,所述装置还包括:

获取模块,用于获取所述系统配置文件;

第一确定模块,用于若所述系统配置文件中包括所述第二属性字段,则确定所述应用程序是否属于所述预设应用程序;

第三反馈模块,用于若所述系统配置文件中不包括所述第二属性字段,则向所述应用程序反馈所述目标系统属性的所述第一属性值。

可选的,所述属性获取请求由所述应用程序的安卓安装包apk调用所述系统接口时发送;

所述反射方法为getfields方法;

所述系统配置文件为build.prop文件,且所述目标系统属性为build类中的任意一种属性。

可选的,所述装置还包括:

第二确定模块,用于若所述目标系统属性属于预设系统属性,则确定所述应用程序是否属于所述预设应用程序;

第四反馈模块,用于若所述目标系统属性不属于所述预设系统属性,则向所述应用程序反馈所述目标系统属性的所述第一属性值。

可选的,所述装置还包括:

下载模块,用于从服务器处下载应用程序列表,所述应用程序列表中包括所述预设应用程序的应用标识,所述应用程序列表用于确定所述应用程序是否属于所述预设应用程序。

可选的,所述装置还包括:

发送模块,用于向所述服务器发送应用添加请求,所述应用添加请求中包含所述应用程序的应用标识,所述服务器用于根据所述应用程序的应用标识更新所述应用程序列表。

综上所述,本申请实施例中,接收到应用程序的属性获取请求后,确定该应用程序是否属于预设应用程序,若不属于,则向应用程序反馈目标系统属性的第一属性值,若不属于,则向应用程序反馈不同于第一属性值的第二属性值;相较于相关技术中仅能够反馈统一属性值,采用本申请实施例提供的方法,能够针对不同的应用程序反馈不同的属性值,比如,通过为定制终端设置与普通终端相同的第一属性值,并为定制终端设置特有的第二属性值,使得特定应用程序能够根据获取到的第二属性值,区分普通终端与定制终端,有助于提高终端间的辨识度。

本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的系统属性的反馈方法。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的系统属性的反馈方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1