一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种安卓运行环境内访问多媒体文件的方法及装置与流程

2021-10-24 12:34:00 来源:中国专利 TAG:运行环境 装置 操作系统 桌面 运行


1.本发明属于在桌面操作系统上运行移动应用的开发技术领域,具体涉及一种安卓运行环境内访问多媒体文件的方法及装置。


背景技术:

2.在linux平台上运行安卓(android)应用时,通常采用在linux平台上安装安卓运行环境的方式,因此安卓运行环境对于丰富操作系统应用生态具有非常重要的意义。现有安卓系统中,标准安卓应用不是采用标准的文件访问接口访问安卓系统内的多媒体文件(如图片、视频、音频等文件),而是通过调用安卓系统的多媒体数据库实现对安卓系统内多媒体文件的访问,安卓系统内多媒体文件一般需要在多媒体数据库中注册并保存文件缩略图。
3.然而当在linux平台上运行安卓(android)应用时,采用现有安卓系统的多媒体文件访问方式处理多媒体文件时,则可能会出现由于多媒体文件仅是存储在安卓系统中而未完成在多媒体数据库中的注册而导致的多媒体文件无法访问等情况。具体来说,当用户在linux平台上使用安卓应用时,对于用户从linux平台复制到安卓运行环境的多媒体文件,标准的安卓应用如微信、qq等,在执行发送图片、视频等操作时在打开的文件选择窗口里上述粘贴到安卓系统中的文件将无法显示。因此,上述这类问题会为用户在linux平台上运行安卓应用带来不便。
4.综上所述,由于现有安卓系统往往是在系统启动或sdcard重新载入时扫描多媒体文件,并将新发现的多媒体文件注册到多媒体数据库中完成多媒体数据库的更新,或者由安卓应用发送广播消息通知并完成多媒体数据库的更新,而未实现在安卓系统运行时对新增多媒体文件的实时监测,因此,对于在linux平台使用安卓应用的情况来说,当安卓系统运行过程中出现新增多媒体文件时安卓系统并不能及时发现并将其注册到多媒体数据库中,从而导致出现运行于linux平台上的安卓应用无法访问多媒体文件的问题。


技术实现要素:

5.有鉴于此,本发明提供了一种安卓运行环境内访问多媒体文件的方法及装置,能够使运行于安卓运行环境中的安卓应用即时访问到新增的多媒体文件。
6.本发明提供的一种安卓运行环境内访问多媒体文件的方法,具体包括以下步骤:在linux平台上运行安卓运行环境,安卓运行环境内运行安卓应用;启动文件变更监听单元监听所述安卓运行环境所在文件目录的变更文件事件;根据监听到的所述变更文件事件获取变更文件信息生成变更文件列表,所述变更文件信息包括文件名及文件存储地址;根据所述变更文件信息从所述变更文件列表中筛选出多媒体文件作为待更新文件;将所述待更新文件增加到所述安卓运行环境内的多媒体数据库中,实现所述安卓
应用对所述待更新文件的即时访问。
7.进一步地,所述文件变更监听单元设置于所述linux平台上,所述文件变更监听单元还用于监听所述linux平台的鼠标拖拽事件;在所述多媒体数据库中增加拖拽多媒体文件表,所述拖拽多媒体文件表用于存储与鼠标拖拽事件相关的信息且可被所有安卓应用访问;当所述文件变更监听单元监听到所述鼠标拖拽事件时,若所述鼠标拖拽事件的目标对象为所述安卓运行环境所在的文件目录,则根据所述鼠标拖拽事件获取变更文件信息更新所述变更文件列表;根据所述变更文件信息从所述变更文件列表中筛选出多媒体文件作为待更新文件;提取待更新文件的元信息,并将元信息及待更新文件的链接信息发送至所述安卓运行环境中,再将元信息及链接信息添加到所述拖拽多媒体文件表中,所述安卓应用通过元信息和链接信息实现对待更新文件的即时浏览和访问;当所述文件变更监听单元监听到所述安卓运行环境所在的文件目录的文件操作事件时,则根据所述文件操作事件获取变更文件信息更新所述变更文件列表;根据所述变更文件信息从所述变更文件列表中筛选出多媒体文件作为待更新文件;将待更新文件发送至所述安卓运行环境中,由所述安卓运行环境将待更新文件增加到所述安卓运行环境内的多媒体数据库中,实现所述安卓应用对所述待更新文件的即时访问。
8.进一步地,所述安卓应用通过元信息和链接信息实现对待更新文件的即时浏览和访问的具体方式为:当所述安卓应用访问所述待更新文件时,根据所述链接信息将所述待更新文件复制到所述安卓运行环境中。
9.进一步地,所述安卓应用通过元信息和链接信息实现对待更新文件的即时浏览和访问的具体方式为:当所述安卓应用访问所述待更新文件时,修改所述待更新文件的访问权限,使所述安卓应用穿透容器访问存储在所述linux平台上的所述待更新文件。
10.本发明提供的一种安卓运行环境内访问多媒体文件的装置,包括文件变更监听模块、文件类型判断模块、第一文件信息提取模块和多媒体数据库更新模块;所述文件变更监听模块,用于监听安卓运行环境所在的文件目录的文件操作事件,当监听到文件操作事件后,判断当前事件相关的文件是否为变更的文件,如果是则提取变更文件的文件信息,将文件信息发送至文件类型判断模块,并持续监听;如果不是,则保持对文件目录的监听;所述文件类型判断模块,用于根据从所述文件变更监听模块接收到的所述文件信息判断更新的文件的类型,如果是多媒体文件,则将所述文件信息发送至所述第一文件信息提取模块;如果不是多媒体文件,则不响应当前文件信息;所述第一文件信息提取模块,部署在安卓运行环境中用于根据从所述文件类型判断模块接收到的文件信息扫描变更文件提取元信息,并将所述元信息发送至所述多媒体数据库更新模块;所述多媒体数据库更新模块,部署在安卓运行环境中用于将从所述第一文件信息提取模块接收到的所述元信息增加到多媒体数据库对应的数据表中。
11.进一步地,所述装置还包括文件传输模块,所述文件变更监听模块部署在所述linux平台上,当所述文件变更监听模块提取到变更文件的文件信息后,将所述文件信息发送至所述文件传输模块,所述文件传输模块再将文件信息发送至运行于安卓运行环境内的
文件类型判断模块。
12.进一步地,所述装置还包括第二文件信息提取模块、第一数据库更新模块和第二数据库更新模块;同时所述文件变更监听模块还用于监听所述linux平台的鼠标拖拽事件;在所述多媒体数据库中增加拖拽多媒体文件表;所述文件变更监听模块,当监听到鼠标拖拽事件时,判断鼠标拖拽事件的目标对象是否为安卓运行环境所在的文件目录,如果是则获取当前鼠标拖拽事件相关文件的文件信息,将所述文件信息发送至所述文件类型判断模块;当监听到所述安卓运行环境所在的文件目录的文件操作事件时,若事件相关的文件为变更的文件,则将事件相关的文件信息发送至所述文件类型判断模块;所述文件类型判断模块,部署在linux平台上,根据接收到的文件信息判断文件类型,并将类型为多媒体文件且与鼠标拖拽事件相关的文件信息发送至第二文件信息提取模块;将类型为多媒体文件且与文件操作事件相关的文件信息发送至文件传输模块;所述第二文件信息提取模块,部署在linux平台上,根据接收到的文件信息提取对应的多媒体文件的元信息,再将多媒体文件的元信息和链接信息发送至所述文件传输模块;所述文件传输模块,部署在linux平台上,用于将从所述第二文件信息提取模块接收到的信息发送至所述第二数据库更新模块;将从所述文件类型判断模块接收到的文件信息发送至第一文件信息提取模块;所述第二数据库更新模块,部署在安卓运行环境中,用于将从所述文件传输模块接收到的多媒体文件的元信息和链接信息添加到所述拖拽多媒体文件表中;所述第一文件信息提取模块,部署在安卓运行环境中,用于根据从所述文件传输模块接收到的文件信息,提取多媒体文件的元信息,并将元信息发送至所述第一数据库更新模块;所述第一数据库更新模块,部署在安卓运行环境中,用于将从所述第一文件信息提取模块接收到的元信息添加到多媒体数据库中数据表中。
13.有益效果:1、本发明通过在linux平台或安卓运行环境中增加文件变更监听单元,能够及时发现安卓运行环境内变更的多媒体文件,再采用通知机制将更新后的多媒体文件注册到安卓系统内的多媒体数据库中,以实现安卓应用对变更的多媒体文件的即时访问,有效提高linux平台上的安卓应用的适应性和可用性。
14.2、本发明通过扩展增加文件变更监听单元的功能,使其能够监听鼠标拖拽事件,并将其部署在linux平台上,以及在多媒体数据库中增加独立的数据表,实现了对从linux平台以拖拽方式拷贝到安卓运行环境内的多媒体文件在多媒体数据库中的更新,有效节约了安卓运行环境的存储空间,同时提高了多媒体文件更新的效率。
附图说明
15.图1为本发明提供的一种安卓运行环境内访问多媒体文件的方法的第一流程图。
16.图2为本发明提供的一种安卓运行环境内访问多媒体文件的方法的第二流程图。
17.图3为本发明提供的一种安卓运行环境内访问多媒体文件的装置的第一结构图。
18.图4为本发明提供的一种安卓运行环境内访问多媒体文件的装置的第二结构图。
具体实施方式
19.下面结合附图并举实施例,对本发明进行详细描述。
20.现有安卓系统中,多媒体数据库文件主要存储在默认的目录下,一般情况下存储目录为/data/data/com.android.providers.media/databases,该目录下存储了两个数据库文件:内部存储数据库文件“internal.db”和存储卡数据库文件“external

xxxx.db”,安卓应用正是基于这两个数据库文件实现了对多媒体文件的操作。对于在linux平台上运行的安卓应用来说,可能会存在用户临时将linux平台的多媒体文件拷贝到安卓运行环境内的任意目录下,并希望安卓应用能够即时访问该新增的多媒体文件的情况,然而依照安卓系统的现有机制,该多媒体文件是不会被安卓应用发现的。
21.本发明要解决的核心技术问题是运行在linux平台上的安卓应用如何能够即时访问安卓运行环境内新增的多媒体文件。为此本发明提供了一种安卓运行环境内访问多媒体文件的方法及装置,其核心思想是:通过增加文件变更监听功能,能够及时发现安卓运行环境内已经新增、修改或可能新增的多媒体文件,再将更新后的多媒体文件注册到安卓系统内的多媒体数据库中,以便安卓应用能够即时访问该文件。
22.实施例1:本实施例提供了一种安卓运行环境内访问多媒体文件的方法,流程如图1所示,包括以下步骤:步骤1

1、在linux平台上运行安卓运行环境,安卓运行环境内运行安卓应用;启动文件变更监听单元获取安卓运行环境所在的文件目录中变更的文件信息,文件变更监听单元用于监听安卓运行环境所在的文件目录的变化。其中,文件信息包括完整的文件名、文件存储位置等相关信息。
23.具体来说,新增文件监听单元通过监听安卓运行环境所在文件目录相关的创建文件事件、打开文件事件和关闭文件事件,发现安卓运行环境中新增的或修改的文件。新增文件监听单元的监听过程如下:s11.1、创建文件监听列表new_file_list,文件监听列表new_file_list用于记录文件名、文件创建时间、文件修改时间等信息。
24.s11.2、采用linux平台提供的文件变化通知机制监听安卓运行环境所在目录的创建文件事件、打开文件事件和关闭文件事件,例如,采用inotify接口监听安卓运行环境所在目录的文件变化相关事件;获取变更文件信息。
25.当监听到创建文件事件时,则将创建的文件名及创建时间添加到文件监听列表new_file_list中;当监听到打开文件事件时,则读取文件监听列表new_file_list查找到当前文件对应的信息,待关闭当前文件后,将最新的修改时间更新到文件监听列表new_file_list中与该文件对应的信息中;当监听到关闭文件事件时,则在文件监听列表new_file_list中查找当前文件名,如果存在,则将最新的修改时间更新到文件监听列表new_file_list中与该文件对应的信息中,如果不存在,则将当前文件名添加到文件监听列表new_file_list中,并将文件关闭的时间作为文件创建时间及文件修改时间添加到文件监听列表new_file_list中。
26.步骤1

2、根据步骤1

1获取的变更文件信息,判断文件是否为多媒体文件,若是多媒体文件则执行步骤1

3,否则,执行步骤1

1。
27.根据变更文件信息中记录的文件扩展名判断文件类型,例如,扩展名为“.mp4”的文件是视频文件、扩展名为“.jpeg”的文件是图像文件、扩展名为“.mp3”的文件是音频文件等。也可以预先建立文件头特征与文件类型的映射关系,提取变更文件的文件头特征,依据映射关系确定变更文件的文件类型。
28.步骤1

3、将变更的多媒体文件更新到安卓运行环境内的多媒体数据库中,以实现安卓应用对变更的多媒体文件的即时访问。
29.当文件变更监听单元设置在安卓运行环境内时,可采用常用方式向安卓运行环境发送广播启动mediascanner服务扫描变更的多媒体文件,提取文件的元信息(meta information)包括音视频格式、图像的尺寸和缩略图等,将提取到的元信息加入多媒体数据库中。
30.当文件变更监听单元设置在linux平台上时,可采用远程过程调用(remote procedure call,rpc)的方式将变更的多媒体文件的文件信息发送到安卓运行环境内,再采用常用方式向安卓运行环境发送广播启动mediascanner服务扫描变更的多媒体文件,提取文件的元信息(meta information),将提取到的元信息加入多媒体数据库中。其中,元信息包括音视频格式、图像的尺寸和缩略图等文件相关的信息。
31.此外,也可以采用新建的功能模块提取待更新文件的元信息,再将元信息添加到多媒体数据库中的方式,实现多媒体数据库的更新。
32.实施例2:进一步地,为了方法的适用范围,本实施例将文件变更监听单元设置在linux平台上,因此,文件变更监听单元能够在监听安卓运行环境所在文件目录相关的创建文件事件、打开文件事件和关闭文件事件的同时,监听linux平台的鼠标拖拽事件以便及时发现安卓运行环境内可能新增的多媒体文件;同时,在安卓运行环境的多媒体数据中增加独立的拖拽多媒体文件表,且拖拽多媒体文件表对于安卓应用是透明的,即安卓应用运行时能够同时访问现有多媒体文件数据表及拖拽多媒体文件表,其中,拖拽多媒体文件表用于存储鼠标拖拽事件相关文件的信息。
33.本实施例提供了一种安卓运行环境内访问多媒体文件的方法,流程如图2所示,包括以下步骤:步骤2

1、在linux平台上运行安卓运行环境,安卓运行环境内运行安卓应用;启动文件变更监听单元,文件变更监听单元用于监听安卓运行环境所在的文件目录的文件操作事件以及linux平台的鼠标拖拽事件。
34.当文件变更监听单元监听到鼠标拖拽事件时,判断拖拽事件的目标对象是否为安卓运行环境所在的文件目录,如果是则获取当前鼠标拖拽事件相关的文件信息,执行步骤2

2;如果不是则忽略当前事件,执行步骤2

1。当文件变更监听单元监听到安卓运行环境所在的文件目录的文件操作事件时,若事件相关的文件为变更的文件,则提取事件相关的文件信息,执行步骤2

2。
35.判断文件是否为变更的文件的方法,可采用步骤1

1中的方式。通过分析文件是否为变更文件,能够有效避免后续的无效操作,提高文件处理的效率。
36.步骤2

2、根据步骤2

1获取的文件信息,判断文件是否为多媒体文件,若是拖拽事件相关的多媒体文件,则执行步骤2

3;若是文件操作事件相关的多媒体文件,则执行步骤2

4;若不是多媒体文件,则执行步骤2

1。
37.本发明中,可根据变更文件信息中记录的文件扩展名判断文件类型,也可以预先建立文件头特征与文件类型的映射关系,提取变更文件的文件头特征,依据映射关系确定变更文件的文件类型。
38.步骤2

3、根据获取的文件信息,提取该文件的元信息,并将元信息及链接信息添加到安卓运行环境的多媒体数据库中的拖拽多媒体文件表中。
39.当安卓应用对拖拽多媒体文件表中的文件进行操作时,多媒体文件获取单元会根据链接信息将多媒体文件复制到安卓运行环境中,以实现安卓应用对变更的多媒体文件的即时访问。
40.进一步地,为了提高系统的运行效率,节约内存资源,本发明提供不需要将多媒体文件实际复制到安卓运行环境内即可实现安卓应用对多媒体文件的操作的功能。具体来说,本发明可根据链接信息修改多媒体文件的访问权限,借助软链接的方式,使安卓应用能够穿透容器实现对存储在linux平台上的文件的操作,从而实现安卓应用对变更的多媒体文件的即时访问。
41.步骤2

4、将获取到的文件信息发送至安卓运行环境中,由安卓运行环境根据文件信息提取变更的多媒体文件的元信息,并将元信息添加到安卓运行环境的多媒体数据库中,以实现安卓应用对变更的多媒体文件的即时访问。
42.具体来说,可采用常用方式向安卓运行环境发送广播启动mediascanner服务扫描变更的多媒体文件,提取文件的元信息(meta information)包括音视频格式、图像的尺寸和缩略图等,将提取到的元信息加入多媒体数据库中。
43.实施例3:本发明提供了一种安卓运行环境内访问多媒体文件的装置,结构如图3所示,包括文件变更监听模块、文件类型判断模块、文件信息提取模块和多媒体数据库更新模块。
44.本实施例中,文件变更监听模块,用于监听安卓运行环境所在的文件目录的文件操作事件,包括创建文件事件、打开文件事件和关闭文件事件,当监听到文件操作事件后,判断当前事件相关的文件是否为变更的文件,如果是则提取变更文件的文件信息,将文件信息发送至文件类型判断模块,并持续监听;如果不是,则保持对文件系统的监听。文件变更监听模块可部署在安卓运行环境中。
45.文件类型判断模块,部署在安卓运行环境中用于判断更新的文件的类型,如果更新的文件为多媒体文件,则将文件信息发送至文件信息提取模块;如果更新的文件不是多媒体文件,则不响应当前文件信息。
46.文件信息提取模块,部署在安卓运行环境中用于根据多媒体文件的文件信息扫描多媒体文件提取多媒体文件的元信息,并将提取到的元信息发送至多媒体数据库更新模块。
47.多媒体数据库更新模块,部署在安卓运行环境中用于将接收到的多媒体文件的元信息增加到多媒体数据库对应的数据表中。
48.实施例4:
本发明提供了一种安卓运行环境内访问多媒体文件的装置,包括文件变更监听模块、文件传输模块、文件类型判断模块、文件信息提取模块和多媒体数据库更新模块。
49.与实时例3相比,本实施例将文件变更监听模块部署在linux平台上,当文件变更监听模块提取到变更文件的文件信息后,将文件信息发送至文件传输模块;由文件传输模块将文件信息发送至运行于安卓运行环境内的文件类型判断模块;文件类型判断模块对接收到的文件信息进行判断,再将类型为多媒体文件的文件信息发送至文件信息提取模块;文件信息提取模块根据接收到的文件信息提取多媒体文件的元信息,再将元信息发送至多媒体数据库更新模块;多媒体数据库更新模块将接收到的元信息增加到安卓运行环境的多媒体数据库中对应的数据表中。
50.实施例5:本发明提供了一种安卓运行环境内访问多媒体文件的装置,结构如图4所示,包括文件变更监听模块、文件类型判断模块、第一文件信息提取模块、第二文件信息提取模块、文件传输模块、第一数据库更新模块和第二数据库更新模块。
51.本实施例中的文件变更监听模块部署于linux平台上,同时文件变更监听模块用于监听安卓运行环境所在的文件目录的文件操作事件以及linux平台的鼠标拖拽事件,当监听到鼠标拖拽事件时,判断拖拽事件的目标对象是否为安卓运行环境所在的文件目录,如果是则获取当前鼠标拖拽事件相关的文件信息,将文件信息发送至文件类型判断模块;当监听到安卓运行环境所在的文件目录的文件操作事件时,若事件相关的文件为变更的文件,则将事件相关的文件信息发送至文件类型判断模块。
52.文件类型判断模块,部署在linux平台上,根据接收到的文件信息判断文件类型,并将类型为多媒体文件且与鼠标拖拽事件相关的文件信息发送至第一文件信息提取模块;将类型为多媒体文件且与文件操作事件相关的文件信息发送至文件传输模块。
53.第一文件信息提取模块,部署在linux平台上,根据接收到的文件信息提取对应的多媒体文件的元信息,然后将多媒体文件的元信息和链接信息发送至文件传输模块。
54.文件传输模块,部署在linux平台上,用于将从第一文件信息提取模块接收到的信息发送至第一数据库更新模块;将从文件类型判断模块接收到的文件信息发送至第二文件信息提取模块。
55.第一数据库更新模块,部署在安卓运行环境中,用于将从文件传输模块接收到的多媒体文件的元信息和链接信息添加到多媒体数据库中的拖拽多媒体文件表中。
56.第二文件信息提取模块,部署在安卓运行环境中,用于根据从文件传输模块接收到的文件信息,提取的多媒体文件的元信息,并将元信息发送至第二数据库更新模块。
57.第二数据库更新模块,部署在安卓运行环境中,用于将从第二文件信息提取模块接收到的元信息添加到多媒体数据库中数据表中。
58.文件变更监听模块的监听方式为:创建文件监听列表,文件监听列表用于记录文件名、文件创建时间、文件修改时间等信息;当监听到创建文件事件时,则将创建的文件名及创建时间添加到文件监听列表中;当监听到打开文件事件时,则读取文件监听列表查找到当前文件对应的信息,待关闭当前文件后,将最新的修改时间更新到文件监听列表中与该文件对应的信息中;当监听到关闭文件事件时,则在文件监听列表中查找当前文件名,如果存在,则将最新的修改时间更新到文件监听列表中与该文件对应的信息中,如果不存在,
则将当前文件名添加到文件监听列中,并将文件关闭的时间作为文件创建时间及文件修改时间添加到文件监听列表中;当监听到鼠标拖拽事件时,则在文件监听列表中查找当前文件名,如果存在,则将最新的修改时间更新到文件监听列表中与该文件对应的信息中,如果不存在,则将当前文件名添加到文件监听列中,并将文件关闭的时间作为文件创建时间及文件修改时间添加到文件监听列表中。
59.综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜