基于Android设备的录音数据的多进程分发方法与系统技术方案

技术编号:23314910 阅读:32 留言:0更新日期:2020-02-11 17:43
本发明专利技术公开一种基于Android设备录音数据的多进程分发方法,包括如下步骤:当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;当前应用端根据确定的数据源获取录音数据。本发明专利技术还公开了一种基于Android设备录音数据的多进程分发的系统,根据本发明专利技术公开的方法和系统,可以提高应用间、进程间录音数据的分发效率,降低应用上层封装难度,节省设备性能和内存占用率,满足多种业务需求。

Multi process distribution method and system of recording data based on Android device

【技术实现步骤摘要】
基于Android设备的录音数据的多进程分发方法与系统
本专利技术涉及数据分发
,特别是一种基于Android设备的录音数据的多进程分发方法与系统。
技术介绍
由于谷歌(Google)公司对录音权限的严格管理,Android系统(安卓系统)默认为单录音形态,不支持多应用、多进程同时获取录音数据,但车载业务会存在多应用或多进程间共享录音数据的需求。目前主流手机Android操作系统,以小米手机(MIUI)、华为手机(EMUI)为例,均通过重写Android底层录音源码,通过录音优先级进行管理来实现多应用或多进程间共享录音数据。但是这对底层的修改人员要求较高,且由于需要涉及Android底层相关源码,容易出现其它问题。此外,由于修改方案并不是通用的,而是需要针对不同Codec适配,因而还容易产生兼容性问题,在不同设备仍然需要进行部分源码调整。而目前的车载系统并未做相关兼容,大多是以时间片作为划分,同一时间段仅允许某一进程录音,并不能在多应用或多进程间共享录音数据。可见,解决车载系统的多应用或多进程间共享录音数据的问题是业内的迫切需求。
技术实现思路
本专利技术的目的之一在于,提供一种应用层的解决方案,以实现从应用层解决Anroid系统的录音数据无法同时分发给多个应用或进程的缺陷,同时达到避免修改底层代码的效果。本专利技术的另一目的还在于,提供一种传输策略选择方案,通过判断当前设备工作模式与通信关系,智能的选取具体传输方式,使得在应用层仅传入录音参数,就可以获取相应的录音数据,从而避免多进程录音的复杂实现方式,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度,节省设备性能和内存占用率,满足多种业务需求。为此,根据本专利技术的一个方面,提供了一种基于Android设备录音数据的多进程分发方法,包括如下步骤:当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,数据源为Android系统或作为服务端的其他应用端;当前应用端根据确定的数据源获取录音数据。首先,将录音数据的数据源从对Android系统的依赖中解放出来,使得应用端也可以作为数据源,使得从应用层解决多进程、多应用间的录音数据分发问题成为可能。接着,专利技术人还构思通过应用端在获取录音数据前通过消息交互响应的方式来确定数据源,以使得当前应用端既可以从系统,也可以从作为服务端的其他应用端获取录音数据,从而实现了应用层的录音数据分发,避免了依赖修改底层代码来实现多应用、多进程间的录音数据分发的各种弊端,且在应用层不需要进行过多的操作,避免了多进程录音的复杂的实现。在一些实施方式中,当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定包括当前应用端配置成响应于启动指令,获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;当前应用端基于接收到的对指定通信消息的响应消息确定数据源,其实现为:在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源,并将自身设定为服务端且配置成在接收到作为客户端的其他应用端的指定通信消息时返回响应消息。在启动一个需要使用录音数据的当前应用端时,通过向所有的应用端进行通信消息交互,来确定是否存在已知应用已经在使用录音数据,在确定已有应用端在使用录音数据时,根据响应信息将该应用端作为提供数据源的服务端以从其获取录音数据,而在确定只有自己使用录音数据时,采用从Anroid系统获取录音数据的方式,有效地实现了多进程、多应用间共享录音数据,整个实现过程不会对系统底层作出框架性改变,实现方式简单。在一些实施方式中,当前应用端根据确定的数据源获取录音数据包括在数据源为Android系统时,直接从Android系统获取录音数据;在数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。对于数据源为Android系统的情况,直接采用原有的方式来获取录音数据,而对于数据源为其他应用端的情况,则可以通过创建的传输通道进行数据的直接传输,显著提高了应用间、进程间录音数据的分发效率,降低应用上层封装难度。并且,通过对数据源的确定可以基于其他应用端的实例信息即当前设备的工作模式与通信关系,智能的选取具体传输方式,能够有效兼容所有录音方式和提高传输效率。在一些实施方式中,实例信息包括应用名称、应用ID、应用端所在进程号、应用端所属包名和应用端通信端口,根据其他应用端的实例信息创建传输通道包括根据应用端所在进程号或应用端通信端口确定选用的传输方式;根据选用的传输方式通过实例信息建立与应用端通信端口的通信连接。根据实例信息的具体内容可以定位当前的传输对象具体信息,由此可以确定合适的传输策略即选用合适的传输方式,进而直接通过设置的传输通道和传输方式进行录音数据的传输,以实现智能选取传输方式,提高分发传输效率和提高兼容性。在一些实施方式中,根据应用端所在进程号或应用端通信端口确定选用的传输方式实现为根据应用端所在进程号进行判断,在判断其他应用端与应用端位于同一进程时,选用AIDL作为传输方式,否则选用Socket作为传输方式;或根据应用端的通信端口进行判断,在判断其他应用端与所述应用端位于同一网段时,选用AIDL作为传输方式,否则选用Socket作为传输方式。由此,通过在传输层采用AIDL与Socket结合的方式,即可判断当前设备工作模式与通信关系,智能选取具体传输方式,避免多进程录音的复杂的实现。对同进程间的数据交互,仅使用一种传输媒介,就可以实现录音数据的实时同步传输,而对于不同进程或不同设备间的数据交互,则选用AIDL作为内部传输方式,选用Socket作为进程间或设备间的传输方式,能够有效降低应用上层封装难度,提高分发效率。在一些实施方式中,当前应用端在进行数据源的确定之前还进行如下处理:响应于启动指令,在获取Android设备上的所有应用端之前,先启动Andriod录音接口,进行录音配置的初始化;在根据确定的数据源获取录音数据时,当前应用端还将配置的初始化信息传输至数据源以用于获取录音数据。由此,应用端仅需要根据需求设置自己所需的录音参数,传入录音参数就可以获取所需的录音数据,可以有效避免多进程录音的复杂的实现。根据本专利技术的另一个方面,提供了一种基于Android设备的录音数据的多进程分发系统,包括:数据源确定模块,用于在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;和数据获取模块,用于根据确定的数据源获取录音数据。由此,通过数据源确定模块可以精准的定位数据源类型,以确定从Android系统或从作为服务端的其他应用端来获取录音数据,之后基于数据获取模块从相应的数据源获取录音数据即可,避免了通过修改系统底层代码以实现所有应用或进程都可以同时从系统获取录音数据时容易产生的诸多问题,使得仅仅从应用层进行简单的操作即可实现多应用、多进程间的本文档来自技高网...

【技术保护点】
1.基于Android设备的录音数据的多进程分发方法,其特征在于,包括如下步骤:/n当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;/n所述当前应用端根据确定的数据源获取录音数据。/n

【技术特征摘要】
1.基于Android设备的录音数据的多进程分发方法,其特征在于,包括如下步骤:
当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定,其中,所述数据源为Android系统或作为服务端的其他应用端;
所述当前应用端根据确定的数据源获取录音数据。


2.根据权利要求1所述的方法,其特征在于,所述当前应用端在获取录音数据之前,基于其所发出的指定通信消息的响应情况进行数据源的确定包括
所述当前应用端配置成响应于启动指令,获取Android设备上的所有应用端,并向所有应用端发送指定通信消息;
所述当前应用端基于接收到的对所述指定通信消息的响应消息确定数据源,其实现为:在接收到响应消息时,将响应消息的发送方确定为数据源,或在未接收到任何响应消息时,将Android系统作为数据源,并将自身设定为服务端且配置成在接收到作为客户端的其他应用端的指定通信消息时返回响应消息。


3.根据权利要求2所述的方法,其特征在于,所述当前应用端根据确定的数据源获取录音数据包括
在数据源为Android系统时,直接从Android系统获取录音数据;
在数据源为作为服务端的其他应用端时,根据其他应用端的实例信息创建传输通道,通过创建的传输通道获取录音数据。


4.根据权利要求3所述的方法,其特征在于,所述实例信息包括应用名称、应用ID、应用端所在进程号、应用端所属包名和应用端通信端口,
所述根据其他应用端的实例信息创建传输通道包括
根据所述应用端所在进程号或应用端通信端口确定选用的传输方式;
根据选用的传输方式通过所述实例信息建立与所述应用端通信端口的通信连接。


5.根据权利要求4所述的方法,其中,所述根据应用端所在进程号或应用端通信端口确定选用的传输方式实现为
根据应用端所在进程号进行判断,在判断其他应用端与所述应用端位于同一进程时,选用AIDL作为传输方式,否则选用Socket作为传输方式;或
根据应用端通信端口进行判断,在判断其他应用端与所述应用端位于同一网段时,选用AIDL作为传输方式,否则选用Socket...

【专利技术属性】
技术研发人员:王保保
申请(专利权)人:苏州思必驰信息科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1