本发明涉及android多媒体扫描系统技术领域,具体涉及一种基于android多媒体快速扫描系统。
背景技术
在android系统的内部有一个媒体扫描库,当android系统的系统板与外部设备连接后,android系统的媒体扫描库就会对外部设备进行一个全部的扫描,经过系统扫描后再将外部设备中的所有文件在存入系统库中,在需要提取文件的时候,再调取需要的文件。但是外部设备的全体文件往往会存在一些无关的文件,如果让android系统将外部设备进行扫描,就会耗费大量的时间,使android系统扫描、处理文件的速度下降。
因此,本领域的技术人员致力于研究一种基于android多媒体快速扫描系统,可以通过android系统中的应用层自主的对外部插入的设备进行扫描,可以有效的、快速的对外部设备中的文件进行扫描。
技术实现要素:
针对现有技术中的缺陷,本发明提供一种基于android多媒体快速扫描系统,可以通过android系统中的应用层自主的对外部插入的设备进行扫描,可以有效的、快速的对外部设备中的文件进行扫描。
为实现上述目的,本发明提供了一种基于android多媒体快速扫描系统,包括android系统,android系统中包括:
媒体扫描单元,用于将外部设备中的文件进行扫描,得到外部设备中的媒体文件的地址。
媒体存储单元,用于与媒体扫描单元进行交互,将媒体文件的地址存入第一数据库中。
应用层,用于监听外部设备,接收外部设备的发出的广播。
较优的,媒体扫描单元将得到的外部设备中的媒体文件的地址通过jni本地接口发送至底层媒体解码库中,底层媒体解码库用于将文件的地址信息进行解码,并将解码后的文件地址传输至媒体存储单元中,媒体存储单元将解码后的文件地址存入数据库中。
较优的,所述媒体文件的地址至少一个,应用层将媒体文件的地址通过数组进行存储。
较优的,所述应用层还将媒体文件的地址直接发送给媒体扫描单元中进行单个文件解析扫描。
较优的,所述媒体扫描单元扫描完成后,应用层还发出广播通知媒体存储单元控制媒体扫描单元将android系统中的全部文件进行扫描。
较优的,所述基于android多媒体快速扫描系统还包括对外部设备进行检测,所述外部设备检测包括利用外部设备驱动和媒体框架层对外部设备进行检测。
较优的,所述媒体扫描单元还用于将扫描的外部设备中的文件进行过滤,得到过滤后的多媒体文件,得到多媒体文件的地址。
本发明的有益效果是:本发明提供的一种基于android多媒体快速扫描系统,在android系统中,通过媒体扫描单元对外部文件进行扫描,得到外部设备中的媒体文件的地址;通过媒体存储单元,将媒体文件的地址存入第一数据库中;通过应用层监听外部设备是否插入,外部设备插入后就发出广播。本发明提供的一种基于android多媒体快速扫描系统,可以通过android系统中的应用层自主的对外部插入的设备进行扫描,可以有效的、快速的对外部设备中的文件进行扫描。
附图说明
图1是本发明一具体实施方式的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
如图1所示,本发明提供一种基于android多媒体快速扫描系统,包括android系统,android系统中包括:
媒体扫描单元,用于将外部设备中的文件进行扫描,得到外部设备中的媒体文件的地址。应当理解的是,媒体存储单元在android系统中指的是一种虚拟的媒体扫描单元(mediascanner),媒体扫描单元(mediascanner)将外部设备中的文件进行扫描后,此时扫描的文件是外部设备的全部文件,通过遍历所有文件得到过滤后的单独的媒体文件的地址。相对于现有的将全部文件扫描解析文件,可以提高扫描速度,将用户需要的数据进行显示。
媒体存储单元,用于与媒体扫描单元进行交互,将媒体文件的地址存入第一数据库中。应当理解的是,媒体存储单元与媒体扫描单元之间进行的交互是频繁的,媒体存储单元与媒体扫描单元之间的交互可通过广播进行,媒体存储单元指的是mediaprovider数据库,mediaprovider数据库收到扫描的广播后就会调用mediascanner数据库进行下一步的扫描。第一数据库指的是android系统中的external数据库。
应用层,用于监听外部设备,接收外部设备的发出的广播。应用层指的是android系统中的应用层(application),应用层(application)用于负责外部设备的mount和umount监听。利用应用层进行监听时,有利于控制媒体扫描单元快速对媒体文件进行扫描,有利于媒体文件快速被扫描。
媒体扫描单元将得到的外部设备中的媒体文件的地址通过jni本地接口发送至底层媒体解码库中,底层媒体解码库用于将文件的地址信息进行解码,并将解码后的文件地址传输至媒体存储单元中,媒体存储单元将解码后的文件地址存入数据库中。文件在扫描完成、并在解码完成后就可以发出广播,通知应用层进行相关的操作。应当理解的是文件的扫描和解码为两个步骤,扫描一个文件所花费的时间远小于解码一个文件的时间。
媒体文件的地址至少一个,应用层将媒体文件的地址通过数组进行存储。应当理解的是,应用层得到的媒体文件的地址依次存入数组中,该数值用于存储记录各个媒体文件的地址,形成地址表单,便于媒体文件的地址被调用。
应用层还将媒体文件的地址直接发送给媒体扫描单元中进行单个文件解析扫描。应用层可通过程序filepath.listfiles(),拿到外部设备中存储的所有文件,自定义的过滤文件格式,来遍历过滤得到想要的文件路径,在过滤的时候可以将过滤的单个文件插入数据库。相对于现有技术,系统将外部设备进行全部扫描,并会解析文件数据,并会把相应的文件信息存储到对应的数据库当中这个过程会节约大量的时间。应当理解的是,应用层的过滤只会预先得到相应文件的路径,在获得路径的过程中不会涉及到数据库的操作,而是将临时文件存入数组中。
媒体扫描单元扫描完成后,应用层还发出广播通知媒体存储单元控制媒体扫描单元将android系统中的全部文件进行扫描。媒体扫描单元扫描完成后,为便于android系统中的其他应用软件调用相关的文件,通过应用层广播通知媒体扫描单元扫描文件,从而在不影响其他软件应用的情况下,有效的、快速的进行媒体文件的扫描。
基于android多媒体快速扫描系统还包括对外部设备进行检测,外部设备检测包括利用外部设备驱动和媒体框架层对外部设备进行检测。外部设备包括sd卡和闪存卡,媒体框架层在android系统中指的是framework层。
媒体扫描单元还用于将扫描的外部设备中的文件进行过滤,得到过滤后的多媒体文件,得到多媒体文件的地址。应当理解的是,过滤是指的是在外部设备的文件中确定扫描的文件是否是媒体文件,媒体文件如音乐、视频、图片等文件,如果不是对应格式的文件,则不记录该文件的地址信息。
本发明提供的一种基于android多媒体扫描系统,在android系统中,通过媒体扫描单元对外部文件进行扫描,得到外部设备中的媒体文件的地址;通过媒体存储单元,将媒体文件的地址存入第一数据库中;通过应用层监听外部设备是否插入,外部设备插入后就发出广播。通过应用层来控制系统的扫描,应用层自己实现一个外部设备扫描服务,应用层实现相关媒体文件的过滤,然后再控制单个文件存入系统数据库中,这样的操作会节约大量的时间,满足车载热插拔快速扫描的需求。本发明可以快速的获取到相应的媒体资源,而不用等待系统的漫长的扫描过程,从一定程度上优化经常快速插拔外部设备读文件慢的问题。媒体框架层(framework)部分逻辑交给应用层,应用层可以控制一定的扫描逻辑,定制开发自由度更高,更能满足开发的需求。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。