基于 Android 平台支持多语音通道的方法、 系统和移动终 端 技术领域 本发明涉及移动通信技术领域, 尤其涉及一种基于 Android 平台支持多语音通道 的方法、 系统和移动终端。
背景技术 Android 平台是 Google( 谷歌 ) 公司开发的基于 Linux 平台的开源移动终端操作 系统。它包括操作系统、 用户界面和应用程序等移动终端工作所需的全部软件。Google 公 司通过与运营商、 设备制造商、 开发商等各方结成深层次的合作伙伴关系, 希望借助建立标 准化、 开放式的移动终端软件平台, 在移动产业内形成一个开放式的生态系统。
在现有 Android 平台的 Audio( 音频 ) 系统中, 是通过在 Audio 框架层定义通信语 音模式, 支持通信语音模式和其它模式的切换, 同时保存和管理 Audio 框架层的模式状态。 但现有 Audio 框架层仅支持一路语音工作, 在移动终端需要加入多个通信模块时, Audio 框 架层无法支持多路语音通道的设置, 以调用驱动层正常工作。
综上可知, 现有 Android 平台在支持多语音通道技术上, 显然存在不便与缺陷, 所 以有必要加以改进。
发明内容
针对上述的缺陷, 本发明的目的在于提供一种基于 Android 平台支持多语音通道 的方法、 系统和移动终端, 其能够在 Android 平台上支持多语音通道功能, 从而实现多模 / 双模移动终端的多路语音在 Android 平台上正常工作。
为了实现上述目的, 本发明提供一种基于 Android 平台支持多语音通道的方法, 应用于包括多个通信模块的移动终端, 所述方法包括步骤如下 :
应用层的语音管理模块定义多个语音通道, 每个所述语音通道分别对应不同所述 通信模块所采用的语音模式 ;
所述语音管理模块判断当前的音频系统状态, 并调用框架层的音频框架管理模 块;
所述音频框架管理模块根据所述当前的音频系统状态设置当前的语音模式, 并调 用驱动层的音频驱动模块 ;
所述音频驱动模块根据所述当前的语音模式, 切换对应的语音通道以实现语音通 信。
根据本发明支持多语音通道的方法, 所述语音管理模块判断当前的音频系统状态 的步骤之前还包括 :
所述应用层的通信应用模块在语音通信之前调用所述语音管理模块, 根据当前的 通信模式设置所述当前的音频系统状态。
根据本发明支持多语音通道的方法, 所述框架层对所述应用层提供 Java 本地接口。
根据本发明支持多语音通道的方法, 所述语音模式包括 CDMA 语音模式、 GSM 语音模式。 本发明还提供一种基于 Android 平台支持多语音通道的系统, 应用于包括多个通 信模块的移动终端, 所述系统包括 :
位于应用层的语音管理模块, 用于定义多个语音通道, 每个所述语音通道分别对 应不同通信模块所采用的语音模式 ; 还用于判断当前的音频系统状态, 并调用音频框架管 理模块 ;
位于框架层的音频框架管理模块, 用于根据所述当前的音频系统状态设置当前的 语音模式, 并调用音频驱动模块 ;
位于驱动层的音频驱动模块, 用于根据该所述当前的语音模式, 切换对应的语音 通道以实现语音通信。
根据本发明支持多语音通道的系统, 所述应用层还包括通信应用模块, 用于在语 音通信之前调用所述语音管理模块, 根据当前的通信模式设置所述当前的音频系统状态。
根据本发明支持多语音通道的系统, 所述框架层对所述应用层提供 Java 本地接 口。
根据本发明支持多语音通道的系统, 所述语音模式包括 CDMA 语音模式、 GSM 语音 本发明还提供一种包括上述基于 Android 平台支持多语音通道的系统的移动终模式。
端。
本发明通过对 Android 平台中 Audio 系统的应用层、 框架层和驱动层进行修改及 完善, 即在应用层的语音管理模块定义多个语音通道以及判断 Audio 系统状态, 由框架层 的 Audio 框架管理模块根据 Audio 系统状态设置当前的语音模式, 调用驱动层的 Audio 驱 动模块切换对应的语音通道以实现语音通信。借此, 本发明能够在 Android 平台上支持多 语音通道功能, 从而实现多模 / 双模移动终端的多路语音在 Android 平台上正常工作。附图说明
图 1 是本发明提供的基于 Android 平台支持多语音通道的系统结构图 ;
图 2 是本发明提供的基于 Android 平台支持多语音通道的方法流程图 ;
图 3 是本发明优选的基于 Android 平台支持多语音通道的方法流程图。 具体实施方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
本发明的基本思想是 : 通过对 Android 平台中 Audio( 音频 ) 系统的应用层、 框架 层和驱动层进行修改及完善, 以实现在 Android 平台上支持多语音通道功能。所谓多语音 通道, 是指一台移动终端同时持两个或以上的通信模块, 多个通信模块与声卡相连接, 并支 持每一路的语音数据输入输出。图 1 示出了本发明基于 Android 平台支持多语音通道的系统结构, 所述系统 100 应用于多模 / 双模手机等包括多个通信模块的移动终端, 该系统 100 按照 Android 平台架 构主要分为应用 (Java) 层、 框架层和驱动层, 并主要包括模块有 : 位于应用层的语音管理 模块 10、 位于框架层的 Audio 框架管理模块 20 和位于驱动层的 Audio 驱动模块 30, 其中 :
语音管理模块 10, 用于在 Android 平台原有代码的基础上, 定义多个语音通道, 该 语音通道的定义可通过应用层的接口向通信应用提供扩充的应用功能。 每个语音通道分别 对应不同通信模块所采用的语音模式, 主要包括 CDMA 通信模块采用的 CDMA 语音模式和 GSM 模块采用的 GSM 语音模式, 当然还可以包括其他类型的通信模块所采用的语音模式。另外, 语音管理模块 10 还用于判断当前的 Audio 系统状态, 并对下调用框架层的 Audio 框架管理 模块 20。
Audio 框架管理模块 20, 用于管理 Audio 系统状态, 根据当前的 Audio 系统状态设 置当前的语音模式, 并对下调用驱动层的接口, 以调用驱动层的 Audio 驱动模块 30。
Audio 驱动模块 30, 用于根据该当前的语音模式, 切换对应的语音通道以实现语 音通信, 例如如果当前是 CDMA 语音模式, 则调用 CDMA 语音通道工作 ; 如果当前是 GSM 语音 模式, 则调用 GSM 语音通道工作。更具体而言, Audio 驱动模块 30 调用各种 Audio 硬件模 块, 例如声卡模块, GSM 通信模块, CDMA 网通信模块以及其它辅助模块 ( 如功能, 消噪 ), 由 Audio 硬件模块做语音采集和语音输出等工作。
优选的是, 本系统 100 的应用层还包括通信应用模块 40, 用于在每次语音通信之 前调用语音管理模块 10, 通信应用模块 40 根据当前实际的通信模式设置当前的 Audio 系统 状态。
如图 1 所示, 在 Android 平台的 Audio 系统中多出了一个 Audio 框架层, Audio 系统 将接口功能提供到 Java 应用层, 并且 Audio 框架层提供 JNI 接口 (JavaNative Interface, Java 本地接口 )50 给 Java 应用层。应用程序都运行在 Java 应用层, 且 Java 应用层的各模 块可以通过 JNI 接口 50 调用 Audio 框架层的各模块, 例如语音管理模块 10 通过 JNI 接口 50 调用 Audio 框架管理模块 20。Audio 框架层专门用于处理语音的各种模式切换管理, 对 上面的 Java 应用层完全封闭, Java 应用层不用管理语音处理逻辑, 只要按不同需要调用即 可; 同样对下面的驱动层, 只要实际对多个模块的各自调用, 也不用管逻辑处理。该 Audio 系统不仅结构清析, 更便于后续功能扩展。
图 2 示出了本发明基于 Android 平台支持多语音通道的方法流程, 其可通过图 1 所示的系统 100 实现, 所述方法包括步骤有 :
步骤 S201, 应用层的语音管理模块 10 定义多个语音通道, 每个语音通道分别对应 不同通信模块所采用的语音模式。例如双模移动终端中 CDMA 通信模块的 CDMA 语音模式和 GSM 通信模块的 GSM 语音模式。
步骤 S202, 语音管理模块 10 判断当前的 Audio 系统状态, 并调用框架层的 Audio 框架管理模块 20。其中, 框架层对应用层提供 JNI 接口 50, 语音管理模块 10 通过 Java 本 地接口 50 调用 Audio 框架管理模块 20 即可。
步骤 S203, Audio 框架管理模块 20 管理 Audio 系统状态, 并根据当前的 Audio 系 统状态设置当前的语音模式, 并调用驱动层的 Audio 驱动模块 30 以实现各种语音模式的切 换。步骤 S204, Audio 驱动模块 30 根据当前的语音模式, 切换对应的语音通道以实现 语音通信。 Audio 驱动模块 30 根据不同语音模式切换成相应通信模块的语音通道以实现接 收音频信号, 发送语音信号。
通 过 上 述 基 于 Android 平 台 支 持 多 语 音 通 道 的 方 法, 本发明可以有效解决 Android 平台下支持多路语音正常工作的问题。
图 3 示出了发明优选的支持多语音通道的方法流程, 本实施例应用于包括 CDMA 通 信模块和 GSM 通信模块的双模移动终端, 其可通过如图 1 所示的系统 100 来实现, 该方法具 体包括步骤如下 :
步骤 S301, 应用层的语音管理模块 10 定义两个语音通道——CDMA 语音通道和 GSM 语音通道, CDMA 语音通道对应 CDMA 通信模块采用的 CDMA 语音模式, GSM 语音通道对应 GSM 通信模块采用的 GSM 语音模式。
步骤 S302, 应用层的通信应用模块 40 在每次语音通信之前调用本层的语音管理 模块 10, 根据当前的通信模式设置当前的 Audio 系统状态。也就是说, 通信应用模块 40 决 定 Audio 系统状态, 因为只有通信应用模块 40 才知道当前进行语音通信的通信模块是 CDMA 通信模块还是 GSM 通信模块。 步骤 S303, 语音管理模块 10 判断当前的 Audio 系统状态, 并通过 JNI 接口 50 调用 框架层的 Audio 框架管理模块 20。
步骤 S304, Audio 框架管理模块 20 接收并处理应用层调用的命令, 根据当前的 Audio 系统状态设置并保存当前的语音模式, 并调用驱动层的 Audio 驱动模块 30。这里, Audio 框架管理模块 20 将相关类型转换为驱动层可识别的类别, 以调用 Audio 驱动模块 30。
步骤 S305, Audio 驱动模块 30 接收并处理框架层调用的命令, 根据当前的语音模 式, 切换对应的语音通道, 以接通不同的硬件模块工作。
步骤 S306, 如果当前为 CDMA 语音模式, 则调用 CDMA 通信模块将语音输入、 输出到 声卡处理。
步骤 S307, 如果当前为 GSM 语音模式, 则调用 GSM 通信模块将语音输入、 输出到声 卡处理。
综上所述, 本发明通过对 Android 平台中 Audio 系统的应用层、 框架层和驱动层进 行修改及完善, 即在应用层的语音管理模块定义多个语音通道以及判断 Audio 系统状态, 由框架层的 Audio 框架管理模块根据 Audio 系统状态设置当前的语音模式, 调用驱动层的 Audio 驱动模块切换对应的语音通道以实现语音通信。 借此, 本发明能够在 Android 平台上 支持多语音通道功能, 从而实现多模 / 双模移动终端的多路语音在 Android 平台上正常工 作。
当然, 本发明还可有其它多种实施例, 在不背离本发明精神及其实质的情况下, 熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。