发明内容
本发明提供了一种与android终端设备***设置接口的适配方法,解决了现有技术中存在智能终端设备更新换代工作量较大,业务推广不便,设置多样化而无法满足相关业务需求的技术问题,实现了使得***设置能够与不同android***,不同芯片流媒体设备进行通信,以便解决现有流媒体设备中设置多样化而无法满足相关业务需求,并且实现现有android***设置中流媒体设备上层控制模块的统一化问题,增强IPTV+OTT业务设置的性能及可扩展性的技术效果。
为解决上述技术问题,本申请实施例提供了一种与android终端设备***设置接口的适配方法,所述方法包括:
步骤一:客户端通过BindService绑定服务端Service,获取设备***设置接口实例对象,并通过Proxy代理服务向服务端发送请求数据;
步骤二:服务端Service通过Binder的onTransact获取Proxy代理请求数据;
步骤三:服务端Service通过请求的数据封装结果,并通过Stub内部抽象类调用服务端相应的函数接口;
步骤四:服务端Service返回函数接口调用数据成功或失败的信息,并判断信息是否满足要求,如果满足要求,则流程结束;如果关键数据不满足,基本数据满足,则根据预置的策略,执行相应策略;
步骤五:服务端Service返回客户端请求信息的处理结果并通过客户端响应信息,处理流程完毕。
进一步的,对所述步骤一中的请求数据,分别做以下处理:解析出请求数据的个数以及数据结构类型及长度,然后将请求数据解析成符合发送的格式;或者,根据请求数据的格式,解析出其中特定字段,然后根据预置的格式,生成符合发送的格式。
进一步的,对所述步骤二中的约束条件包括:android***版本、芯片类型。
进一步的,对应android***版本的约束,包括但不限于下列两种处理方式:android版本升级更新,能完全兼容与松耦合;同一android***版本,底层的持续更新不会影响到终端设备接口,能完全兼容与松耦合。
进一步的,对于不同的芯片,业务方面快速移植,避免重复开发。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于采用了将与android终端设备***设置接口的适配方法设计为包括:步骤一:客户端通过BindService绑定服务端Service,获取设备***设置接口实例对象,并通过Proxy代理服务向服务端发送请求数据;步骤二:服务端Service通过Binder的onTransact获取Proxy代理请求数据;步骤三:服务端Service通过请求的数据封装结果,并通过Stub内部抽象类调用服务端相应的函数接口;步骤四:服务端Service返回函数接口调用数据成功或失败的信息,并判断信息是否满足要求,如果满足要求,则流程结束;如果关键数据不满足,基本数据满足,则根据预置的策略,执行相应策略;步骤五:服务端Service返回客户端请求信息的处理结果并通过客户端响应信息,处理流程完毕的技术方案,即,在结合android智能终端在IPTV领域应用的基本情况,不仅能够实现电信级要求的基本业务,满足其基本需求,而且允许电信级用户根据自己的业务需求,满足所希望的某些特定方面的要求,提高IPTV+OTT业务灵活性;运营商让终端厂家提供不同android***,不同芯片类型的智能终端设备,提高产品竞争力,满足了用户的自主性。
进一步的,在增加新业务情况下,采用本申请中的方法还可以在不改变原有模块的基础上在模块中添加新的功能点,这就大大提高了模块的可扩展性,避免重新开发的运营成本,提高了***的稳定性及后期的维护质量,降低了维护成本。
实施例一:
在实施例一中,提供了一种与android终端设备***设置接口的适配方法,请参考图1-图4,所述方法包括:
步骤一:客户端通过BindService()绑定服务端Service,获取设备***设置接口实例对象,并通过Proxy代理服务向服务端发送请求数据;
步骤二:服务端Service通过Binder的onTransact()获取Proxy代理请求数据;
步骤三:服务端Service通过请求的数据封装结果,并通过Stub内部抽象类调用服务端相应的函数接口;
步骤四:服务端Service返回函数接口调用数据成功或失败的信息,并判断信息是否满足要求,如果满足要求,则流程结束;如果关键数据不满足,基本数据满足,则根据预置的策略,执行相应策略;
步骤五:服务端Service返回客户端请求信息的处理结果并通过客户端响应信息,处理流程完毕。
其中,在本申请实施例中,步骤一种对于请求的数据,分别做以下处理:解析出请求数据的个数以及数据结构类型及长度,然后将请求数据解析成符合发送的格式;或者,根据请求数据的格式,解析出其中特定字段,然后根据预置的格式,生成符合发送的格式。
其中,在本申请实施例中,预置策略:服务端对接收的数据分为关键数据与基本数据,对于关键数据不论是数据结构还是数据类型不符合,则流程结束,如关键数据符合要求,基本数据不符合,则执行结果成功。
其中,在本申请实施例中,service是android***中的服务,bindService就是绑定Service服务;一般android的service分为本地和远程,此技术方式是远程service。
其中,在本申请实施例中Service是通过Binder机制来和客户端通讯交互的;transact():向远端的对象发送发出调用,onTransact():是远程的对象能够响应另一端发送过来的调用请求。这两个API都是同步执行的。transact()方法要一直阻塞到onTransact()方法调用完成后才返回;代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。
其中,在本申请实施例中,步骤二中的约束条件包括android***版本,不同芯片。
其中,在本申请实施例中,对应android***版本的约束,至少包含两种处理方式:android版本由2.2,4.0,4.2,4.4不断升级更新,无论才低版本还是高版本,能完全兼容与松耦合;同一android***版本,底层的持续更新不会影响到终端设备接口(可能有扩展接口),能完全兼容与松耦合。
其中,在本申请实施例中,对于不同的芯片,按照android终端设备***设置接口的适配方法,业务方面:做到快速移植;避免重复开发。
其中,在本申请实施例中,下面结合附图对本发明的具体实施方式再进一步的说明:
图2是本申请技术方案应用的android智能终端***框架结构图,***设置接口的适配方法分别包含在***的Linux Kernel、Libraries、Application Framework、Application等各层。
Linux Kernel是Android基于Linux 2.6提供核心***服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
Linux Kernel扩展包含:
——Network_Driver:指为支持业务而扩展集成的网络驱动协议。目前主要包括支持基于IGMP的组播直播功能的标准IGMP V2协议、支持双网络接入的标准802.1Q模块功能,IPV4/IPV6协议;
——Security_Driver:与芯片相关的硬件、操作***等相关信息。
——Dispyay Driver(显示驱动模式),Camera Driver(摄像头驱动),Aduio Driver(音频驱动),Flash Men Driver(外接设备驱动)等其他驱动。
Libraries是Android包含一个C/C++库的集合,供Android***的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者
Libraries扩展包含:
——NetworkServic:客户端软件,主要发送数据和接收请求执行相应功能.
——SQLite(关系数据库引擎),LibWebCore(web浏览器),SGL(2D图形引擎),媒体库等,
Application Framework是android通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等
Application Framework扩展包含:
——LibsyUtils:主要针对静态IP,DHCP+,pppoe,IPV4/IPV6,IPOE,双栈,鉴权等,是对智能终端底层网络封装API,供智能终端设备上层控制模块的统一调用;
——视图(View),内容提供者(Content Providers),资源管理器(Resource Manager),通知管理器(Notification Manager),活动管理器(Activity Manager)
Application;Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置
Application应用包含:
——Setting APK:主要用于实现智能终端设备***设置统一UI,方便运营商对软件业务模块的定制,能在不同android***,不同芯片展现同等效果。
NetworkService,LibSyUtils将***设置接口统一封装成成对象,供Setting调用,做到不依赖android***与芯片使之间可以跨平台,跨芯片工作,减少带来的复杂重复性工作。
为了保证Setting的方法在不同android***,不同芯片间正常使用,与***,芯片无关的功能点如业务账号,服务器信息,通过Put,Set统一存储在iptv_prefs.xml或者***数据库。Setting设置于Android***的底层的接口可以进行分类,主要包括有线网络,无线网络,声音及显示,业务设置,***版本信息,服务器信息,高级信息等,不同类别的接口具备自己独有的一些特点,根据这些特点不仅可以标示该接口类别,还可以根据不同接口的具体功能上的特点,在不同的消息结构上封装具体的操作对象。从而不仅可以满足和不同android***,不同芯片的适配需求,而且可以大大简化控制流程,比喻把有线网络设置单独分类,对静态网络,PPPOE,DHCP等单独编号,都可以方便的识别并采用哪种消息结构。
图3是本发明的接口适配方法流程图,具体为:
步骤一:客户端通过BindService()绑定服务端Service,获取设备***设置接口实例对象,并通过Proxy代理服务向服务端发送请求数据;
首先,客户端通过BindService()绑定服务端Service,并收集相关数据信息;
其次,根据收集的信息,对数据类型进行判断;
对于类型甲,解析出数据个数及每个数据的长度,然后根据这两个数据参数,通过解析单元,获取设备***设置接口对象;
对于类型甲,解析出数据消息格式,然后根据这特定字段,通过解析单元,获取设备***设置接口对象;
再次,获取接口信息失败,客户端与服务端绑定失败;否则绑定成功;
最终,通过代理向服务端发送请求数据;
步骤二:服务端Service通过Binder的onTransact()获取Proxy代理请求数据;
若通过代理获取数据字段不匹配,服务端返回错误信息,拒绝请求,给用户提示;
若通过代理获取数据正常,服务端接收请求数据并处理;
步骤三:服务端Service通过请求的数据封装结果,并通过Stub内部抽象类调用服务端相应的函数接口;Stub为Android service 中的stub类。
步骤四:服务端Service返回函数接口调用数据成功或失败的信息,并判断信息是否满足要求,如果满足要求,则流程结束;如果关键数据不满足,基本数据满足,则根据预置的策略,执行相应策略;
若调用内部函数部分接口成功,提示用户部分约束条件受限,发送失败信息,流程结束;
步骤五:服务端Service返回客户端请求信息的处理结果并通过客户端,客户端响应信息,处理流程完毕。
图4为 本申请实施例中,在Setting中创建有线网络的流程图,具体为开始,通过BindService绑定Service,然后收集数据信息,然后获得数据消息结构,然后将数据传输到解析单元进行解析,然后获取设备***接口数据,否则客户端与服务端匹配失败,则回到解析单元中进行解析;然后向服务端请求实例对象,否则服务端反馈错误信息,回到获取设备***接口数据,然后接收请求,封装请求数据结构,调用内部函数接口,若是,则发送命令成功,响应消息,若否,部分条件满足,发送命令失败,响应消息,然后服务端处理完客户端的请求消息,接收到服务端反馈的结果消息,接收结果并向Setting发送结果消息。
其中,在本申请实施例中,步骤一:Setting APK通过BindService绑定服务端Service(NetworkServic,即AIDL),获取设备***设置接口实例getEthernetDevInfo,并对有线网络状态下网络端口,网络模式,网络IP,DNS,备用DNS等数据消息结构,长度通过解析单元,判断当前网络状态为有线网络,并通过Proxy代理的向服务端发送Transact请求数据;步骤二:服务端Service通过Binder的机制并向Setting APK通过onTransact响应Proxy代理请求数据,如代理请求数据能与服务端匹配,则匹配成功;否则匹配失败;步骤三:服务端Service对通过Proxy代理请求的数据网络端口,网络模式,网络IP,DNS进行封装,并通过Service内部抽象类Stub调用服务端Service相应的函数setEthernetDevInfo接口;步骤四:服务端Service返回函数接口setEthernetDevInfo调用结果,,如网络模式,网络IP,DNS,备用DNS等都正常,则有线网络设置正常;如果备用DNS设置错误,则部分满足,有线网络设置失败;步骤五:服务端Service返回客户端有线网络设置成功的结果并通过客户端,客户端Setting设置成功有线网络,有线网络设置流程完毕。
采用本发明,运营商,终端厂商可以方便的采用不同芯片,不同的android***版本,更为方便,有效的为用户提供服务;
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
由于采用了将与android终端设备***设置接口的适配方法设计为包括:步骤一:客户端通过BindService绑定服务端Service,获取设备***设置接口实例对象,并通过Proxy代理服务向服务端发送请求数据;步骤二:服务端Service通过Binder的onTransact获取Proxy代理请求数据;步骤三:服务端Service通过请求的数据封装结果,并通过Stub内部抽象类调用服务端相应的函数接口;步骤四:服务端Service返回函数接口调用数据成功或失败的信息,并判断信息是否满足要求,如果满足要求,则流程结束;如果关键数据不满足,基本数据满足,则根据预置的策略,执行相应策略;步骤五:服务端Service返回客户端请求信息的处理结果并通过客户端响应信息,处理流程完毕的技术方案,即,在结合android智能终端在IPTV领域应用的基本情况,不仅能够实现电信级要求的基本业务,满足其基本需求,而且允许电信级用户根据自己的业务需求,满足所希望的某些特定方面的要求,提高IPTV+OTT业务灵活性;运营商让终端厂家提供不同android***,不同芯片类型的智能终端设备,提高产品竞争力,满足了用户的自主性。
进一步的,在增加新业务情况下,采用本申请中的方法还可以在不改变原有模块的基础上在模块中添加新的功能点,这就大大提高了模块的可扩展性,避免重新开发的运营成本,提高了***的稳定性及后期的维护质量,降低了维护成本。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。