一种Android智能电视上DLNA投屏权限管控的方法与流程

文档序号:17064899发布日期:2019-03-08 22:50阅读:5087来源:国知局
一种Android智能电视上DLNA投屏权限管控的方法与流程
本发明涉及局域网中移动端设备基于dlna向android智能电视端投屏的权限安全
技术领域
,特别涉及一种android智能电视上dlna投屏权限管控的方法。
背景技术
:dlna全称是digitallivingnetworkalliance,旨在解决各种设备在内的互联互通,让我们的照片、视频、音乐等媒体资源能在设备中共享,使得数字媒体和内容服务的无限制的共享和增长成为可能。因此,dlna为各种智能设备的互联提供了一种解决方案,一种大家可以遵守的规范,其选择的各种技术和协议都是当前应用很广泛的技术和协议。android智能电视作为大屏设备,具备优良的音效,很适合与小屏移动设备互联,在电视上播放小屏设备的图片、音频、视频资源。因此,很多android智能电视都搭载了基于dlna的多屏互动应用,当android智能手机上支持dlna投屏时,就可以方便地通过通络将手机上小屏显示内容投屏到电视屏幕上。随着wifi资源大量使用,投屏应用使用也越来越多。但是,wifi网络的开放性,会接入些未知设备,多屏互动在方便设备主人使用的同时,也可能导致未知设备接入,出现不可控的投屏行为,为电视用户带来干扰和安全风险。技术实现要素:本发明的目的是克服上述
背景技术
中不足,提供一种android智能电视上dlna投屏权限管控的方法,实现了基于投屏设备信息的权限管理,可针对确定的可信设备实施永久投屏授权,未知设备的投屏则被拒绝,保证了android智能电视上局域网络中投屏安全。为了达到上述的技术效果,本发明采取以下技术方案:一种android智能电视上dlna投屏权限管控的方法,基于移动投屏端设备及android智能电视,在所述android智能电视内安装有dlna投屏应用,具体包括以下步骤:a.移动投屏端设备向android智能电视发起投屏请求;b.android智能电视的dlna投屏应用收到投屏请求后解析请求报文,获取移动投屏端设备的ip地址信息并传送给播放器层;c.播放器层基于移动投屏端设备的ip地址,在android智能电视保存的网络路由地址查询表中查询移动投屏端设备的mac地址;d.dlna投屏应用基于移动投屏端设备的mac地址在android智能电视保存的投屏权限列表中查询和处理移动投屏端设备的投屏权限,并根据处理结果实时更新保存投屏权限列表;其中,所述投屏权限列表以mac地址为关键字索引并保存有各mac地址对应的移动投屏端设备的投屏权限状态;e.dlna投屏应用基于步骤d的查询结果处理本次投屏请求,处理投屏请求具体包括接受投屏或拒绝投屏。通过本发明的android智能电视上dlna投屏权限管控的方法,可实现在android智能电视接收到推送投屏请求时,先区分该设备是否已知身份的可信设备,只有电视所有者认可的设备才被允许投屏,否则将不接受不明身份设备的投屏请求,通过投屏请求的权限管控,授权可信设备在android智能电视上的投屏,防止未知设备的投屏发生,从而有效地保证了android智能电视上dlna投屏的安全使用。进一步地,所述设备投屏权限状态具体包括永久接受投屏、永久拒绝投屏、投屏权限暂态三种状态,且在投屏权限列表内报保存有各mac地址对应的移动投屏端设备被连续拒绝投屏的计数。进一步地,所述步骤d具体包括以下步骤:d1.dlna投屏应用基于移动投屏端设备的mac地址在投屏权限列表中查询移动投屏端设备的投屏权限;d2.判断投屏权限列表中是否记录有该mac地址,若投屏权限列表中未记录该mac地址,则进入步骤d3,否则,进入步骤d4;d3.将该mac地址添加至投屏权限列表中,并设置mac地址对应的移动投屏端设备被连续拒绝投屏的计数为0,然后弹出投屏请求权限提示界面并进入步骤d5;d4.获取该mac地址对应的移动投屏端设备的投屏权限状态,若获取的状态为永久接受投屏,则返回接受投屏的查询结果并进入步骤e;若获取的状态为永久拒绝投屏,则返回拒绝投屏的查询结果并进入步骤e;若获取的状态为投屏权限暂态,则弹出投屏请求权限提示界面并进入步骤d5;d5.用户在投屏请求权限提示界面上对该mac地址对应的移动投屏端设备设置投屏权限,投屏请求权限提示界面上提供了三种投屏权限供用户选择,具体包括:永久接受投屏、本次接受投屏、拒绝投屏;若用户选择永久接受投屏则进入步骤d6,若用户选择本次接受投屏则进入步骤d7,若用户选择拒绝投屏则进入步骤d8;d6.更新投屏权限列表中该mac地址对应的移动投屏端设备的投屏权限状态为永久接受投屏,并设置该mac地址对应的移动投屏端设备被连续拒绝投屏的计数为0,返回接受投屏的查询结果并进入步骤e;d7.更新投屏权限列表中该mac地址对应的移动投屏端设备的投屏权限状态为投屏权限暂态,并设置该mac地址对应的移动投屏端设备被连续拒绝投屏的计数为0,返回接受投屏的查询结果并进入步骤e;d8.返回拒绝投屏的查询结果,将投屏权限列表中该mac地址对应的移动投屏端设备被连续拒绝投屏的计数在原计数上加1并更新计数,判断更新后的计数是否大于预设的拒绝阈值n,若更新后的计数大于预设的拒绝阈值n,则更新投屏权限列表中该mac地址对应的移动投屏端设备的投屏权限状态为永久拒绝投屏,进入步骤e。dlna投屏应用在播放器层接收到投屏请求时,首先去查询投屏权限设置状态,如果是使能状态,则获取投屏请求中的移动端ip地址,然后利用该地址在电视端本地保存的arp表(网络路由地址查询表)中查询到该ip地址当前设备的mac地址,再基于该mac地址去查询投屏权限表,如果该mac地址设备没有投屏权限记录(即投屏权限表内未记录有该mac地址),则认为是首次投屏,弹出投屏权限设置窗口;如果该mac地址设备已经记录为拒绝投屏,则查看连续拒绝投屏次数,区分情况做出后续处理;如果该mac地址设备已经记录为永久拒绝投屏,则直接回应拒绝该设备投屏,上述的设计逻辑,可依据用户的选择情况具体处理,基于用户界面选择和内层逻辑相结合的方式,实现状态机跳转和维护,有效地保证了android智能电视上dlna投屏的安全使用。进一步地,所述拒绝阈值n等于3,实际中也可设定为其他值。本发明与现有技术相比,具有以下的有益效果:在本发明的android智能电视上dlna投屏权限管控的方法中,在原有请求投屏流程中增加权限管理节点,针对投屏设备来分类处理,提供授权设备投屏操作、已授权设备自动投屏、拒绝未授权设备的投屏等处理策略,从而在实现基础的投屏业务基础上实现移动端设备的投屏权限管控,有效解决了wifi局域网环境中恶意干扰、占用电视的不安全的行为,保障了android智能电视拥有着对电视屏展示的所有权益,防止未知设备和他人给电视推送不可控的媒资展示,有效地保证了android智能电视上dlna投屏的安全使用。附图说明图1是本发明的一个实施例中android智能电视上dlna投屏权限管控的方法的实现架构的示意图。图2是本发明的一个实施例中dlna投屏应用的投屏权限处理流程示意图。具体实施方式下面结合本发明的实施例对本发明作进一步的阐述和说明。实施例:在本实施例中将具体说明一种实现本方法的技术方案及本方法的一种实施例,实际中也可采用其他方案具体实现本方法。在同一局域网环境中android智能手机上很多应用端都支持将小屏上内容推送到大屏android智能电视上展示,例如相机、各种音视屏软件等,应用场景很广泛。但是随着wifi资源的开放性和接入设备的复杂性,多屏推送类应用也遭遇到安全威胁,例如未知手机设备强行接入android电视所在的wifi后,可支持各种图片、音视频的媒体推送,在电视屏幕上展示。如果所推送内容是非法或有违道德的,则给用户和电视厂商带来非常恶劣的影响。因此,android智能电视在接收到推送投屏请求时,需要区分该设备是否已知身份的可信设备,只有电视所有者认可的设备才被允许投屏,否则将不接受不明身份设备的投屏请求。本实施例中公开了一种android智能电视上dlna投屏权限管控的方法,具体是在android智能电视上搭载的支持dlna推送投屏的应用中,在请求入口增加授权节点处理模块,只有经过同意投屏的移动端,才继续原有的投屏播放业务处理流程。从而为dlna投屏提供了灵活的权限管理,有效保障了android智能电视上投屏安全。一种android智能电视上dlna投屏权限管控的方法,基于移动投屏端设备及android智能电视,在android智能电视内安装有dlna投屏应用,具体包括以下步骤:a.移动投屏端设备向android智能电视发起投屏请求;b.android智能电视的dlna投屏应用收到投屏请求后解析请求报文,获取移动投屏端设备的ip地址信息并传送给播放器层;c.播放器层基于移动投屏端设备的ip地址,在android智能电视保存的网络路由地址查询表中查询移动投屏端设备的mac地址;d.dlna投屏应用基于移动投屏端设备的mac地址在android智能电视保存的投屏权限列表中查询和处理移动投屏端设备的投屏权限,并根据处理结果实时更新保存投屏权限列表;其中,投屏权限列表以mac地址为关键字索引并保存有各mac地址对应的移动投屏端设备的投屏权限状态;设备投屏权限状态具体包括永久接受投屏、永久拒绝投屏、投屏权限暂态三种状态,且在投屏权限列表内报保存有各mac地址对应的移动投屏端设备被连续拒绝投屏的计数refcount。如图2所示,步骤d具体包括以下步骤:d1.dlna投屏应用基于移动投屏端设备的mac地址在投屏权限列表中查询移动投屏端设备的投屏权限;d2.判断投屏权限列表中是否记录有该mac地址,若投屏权限列表中未记录该mac地址,则进入步骤d3,否则,进入步骤d4;d3.将该mac地址添加至投屏权限列表中,并设置mac地址对应的移动投屏端设备被连续拒绝投屏的计数refcount为0,然后弹出投屏请求权限提示界面并进入步骤d5;d4.获取该mac地址对应的移动投屏端设备的投屏权限状态,若获取的状态为永久接受投屏,则返回接受投屏的查询结果并进入步骤e;若获取的状态为永久拒绝投屏,则返回拒绝投屏的查询结果并进入步骤e;若获取的状态为投屏权限暂态,则弹出投屏请求权限提示界面并进入步骤d5;d5.用户在投屏请求权限提示界面上对该mac地址对应的移动投屏端设备设置投屏权限,投屏请求权限提示界面上提供了三种投屏权限供用户选择,具体包括:永久接受投屏、本次接受投屏、拒绝投屏;若用户选择永久接受投屏则进入步骤d6,若用户选择本次接受投屏则进入步骤d7,若用户选择拒绝投屏则进入步骤d8;d6.更新投屏权限列表中该mac地址对应的移动投屏端设备的投屏权限状态为永久接受投屏,并设置该mac地址对应的移动投屏端设备被连续拒绝投屏的计数refcount为0,返回接受投屏的查询结果并进入步骤e;d7.更新投屏权限列表中该mac地址对应的移动投屏端设备的投屏权限状态为投屏权限暂态,并设置该mac地址对应的移动投屏端设备被连续拒绝投屏的计数refcount为0,返回接受投屏的查询结果并进入步骤e;d8.返回拒绝投屏的查询结果,将投屏权限列表中该mac地址对应的移动投屏端设备被连续拒绝投屏的计数refcount在原计数上加1并更新计数refcount,判断更新后的计数refcount是否大于预设的拒绝阈值n(n=3),若更新后的计数refcount大于预设的拒绝阈值n,则更新投屏权限列表中该mac地址对应的移动投屏端设备的投屏权限状态为永久拒绝投屏,进入步骤e。e.dlna投屏应用基于步骤d的查询结果处理本次投屏请求,处理投屏请求具体包括接受投屏或拒绝投屏,并向移动投屏端返回处理结果。通过本发明的android智能电视上dlna投屏权限管控的方法,可实现在android智能电视接收到推送投屏请求时,先区分该设备是否已知身份的可信设备,只有电视所有者认可的设备才被允许投屏,否则将不接受不明身份设备的投屏请求,通过投屏请求的权限管控,授权可信设备在android智能电视上的投屏,防止未知设备的投屏发生,从而有效地保证了android智能电视上dlna投屏的安全使用。目前,android智能电视作为投屏的接收设备,常规流程上是只识别出投屏资源,在本机上播放即可。为了实现投屏设备权限可管可控,本方案中需要在原有请求投屏流程中增加权限管理节点,针对投屏设备来分类处理,提供授权设备投屏操作、已授权设备自动投屏、拒绝未授权设备的投屏等处理策略。在本实施例中,为了在本实施例的android智能电视上实施本方案,还进行了基于设备信息的投屏权限管理设计,本实施例的android智能电视原有的dlna设备投屏过程可简述为:移动端设备向android智能电视发起投屏操作时,首先发送投屏请求携带资源的地址给电视端;电视端应用接收到投屏请求后解析出信息,由播放器层按照地址获取媒体资源在本机播放和显示。为了实现投屏设备权限的管控,本实施例中在上述投屏请求和响应流程中,设计了一个独立权限管理模块,支持播放器层接收到投屏请求消息后,针对设备标志设置的投屏操作是否被允许的权限管理节点。该投屏权限管理模块提供查询和修改的静态接口,提供给播放器层调用。在投屏权限接口调用时只需要通过设备的唯一标识,即可通过简单的静态方法来判断或者修改投屏权限。另外,基于整机设置应用中新增加“投屏授权”项,可以方便启用投屏设备授权功能,也可以在安全wifi环境中去掉投屏授权的处理。具体的,如图1所示为本实施例的android智能电视上dlna投屏权限管控的方法的实现架构的示意图,在该架构中具体包括了投屏端设备及android智能电视上的dlna协议栈处理模块、android播放器、投屏设备权限管理模块、投屏授权开关,其中,dlna协议栈处理模块、android播放器、投屏设备权限管理模块均于dlna投屏内。其中,投屏设备权限管理模块是为了兼容用户使用习惯在设置应用中提供的启动投屏权限的开关,具体为,当投屏权限设置为“打开”状态时,移动端设备dlna投屏时会针对该设备做投屏权限处理(即会具体实施本方法中的监控流程),当设置投屏权限为“关闭”状态,则执行原有的投屏处理流程,不做权限管控。具体的,本实施例中在android智能电视上处理dlna投屏的dlna协议栈如下表所示:分层协议描述androidplayerandroid播放层upnp协议封装upnp“action”。http协议获取http数据tcp/ipsocket传输网络数据根据upnp协议,原有实现中并没有http协议中的推送设备端ip地址相关信息。为了获取推送端设备信息,本实施例中将对这层协议的实现实施改造,将推送请求中解析出的推送设备端的ip地址封装在upnp“action”结构中某字段中,传递给播放层。播放层获取到当前推送投屏设备的ip地址后,通过电视本机记录的网络路由地址查询表,获取到推送设备的mac地址。播放层将mac地址作为设备身份的唯一标志,后续的投屏权限管理将依据mac地址来实现。同时,本实施例中还对android智能电视端dlna投屏应用中对协议库进行了一些扩展性修改,主要思路是利用推送设备投屏请求中携带的ip地址信息,通过tv端保存的地址解析表(arp表),找到推送设备端的mac地址,基于mac地址进行设备投屏权限的鉴别和验证。电视端在接受别的设备推送时tv作为一个dmr抽象,运行一个httpserver线程监听推送设备发送的http包,收到推送包后在http协议层调用setupresponse函数向upnp协议层传输请求及获取回应。setupresponse函数原型如下:plt_httpserver::setupresponse(npt_httprequest&request,constnpt_httprequestcontext&context,npt_httpresponse&response);upnp协议层收到httpserver推送请求后调用processhttppostrequest解析http包,并根据http内容重新打包upnp协议定义的action包,传递给renderer层处理。在这个过程中原来实现的action包不会将httprequestcontext中关于ip的底层信息打包进去。而在下一步的plt_mediarenderer::onaction()处理时会彻底将httprequestcontext丢弃不再上传。对此,我们在plt_mediarenderer::onaction()处理时将plt_httprequestcontext中的ip信息解析出来并上传给chmediarenderdelegate::onsetavtransporturi(),最终通过jni传递给android播放器层。改造后的processhttppostrequest,onaction,onsetavtransporturi函数原型如下:plt_devicehost::processhttppostrequest(npt_httprequest&request,constnpt_httprequestcontext&context,npt_httpresponse&response);plt_mediarenderer::onaction(plt_actionreference&action,constplt_httprequestcontext&context);chmediarenderdelegate::onsetavtransporturi(plt_actionreference&action,npt_string&remoteip);至此,dlna协议栈改造完毕,将推送设备端的ip地址输出到播放器层。同时,本实施例中还具体公开了一种播放器层基于mac地址实现的设备投屏权限管理,arp即地址解析协议,是网络传输包的基础协议,每个联网设备在本地都会学习并维护本机的arp表,采用文件方式保存在本地文件系统中,如android智能电视机上/proc/net/arp文件。基于arp信息,可以获取对应ip的mac地址,即为投屏设备的mac地址。基于mac地址调用投屏权限状态的查询接口,返回接受当前设备的投屏或者拒绝当前设备的投屏。投屏权限管理模块内部的实现逻辑过程及本方法的步骤d中的所有流程步骤。具体实施及使用本方法时,当android智能电视实施恢复出厂设置操作时,将清空本机记录的投屏权限记录,包括永久授权投屏、永久拒绝投屏、已被拒绝投屏但连续拒绝次数不足的三类设备的记录列表。当投屏权限授权开关状态发生变化时,投屏权限管理模块都回归到初始化状态,清空所有投屏权限记录。局域网发生切换时,由于dlna投屏时推送段和接收端都必须在同一局域网中,如果电视端的接入网络发生切换,那么移动投送端的网络也必切入新网络中。局域网发生变化时,网络ip地址可能发生变化,但是接入网路的设备mac地址是不会发生变化,对基于mac地址的投屏权限管理没有影响,投屏权限记录保持不变。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1