实现实时信息

本页介绍如何在 Android 9 中实现实时信息 (RTT)。RTT 这项功能面向失聪用户或听障用户提供,可替代文本电话 (TTY) 技术。借助此功能,设备可以使用同一电话号码进行语音通话和 RTT 通话,即时传输信息(信息是逐个字符输入的),支持拨打 911,并且向后兼容 TTY。

在 RTT 通话中,来电者和接听者均能知晓自己正在进行 RTT 通话。建立连接后,双方都会进入 RTT 通话,此时信息输入和键盘将启用。信息在输入时将会显示,同时逐个字符发送。

示例和源代码

AOSP 的 Call.RttCallConnection.RttTextStream 中提供了框架组件。IMS/调制解调器组件是专有的,应由 IMS/调制解调器供应商提供。您还可以使用拨号器 RTT 的参考实现。

RTT 的 AOSP 拨号器代码:

实现

要实现 RTT,您应该与调制解调器/SoC 提供商合作,因为您需要用到支持 RTT 的调制解调器。您可以升级到 Android 9,也可以将一系列电话框架补丁程序向后移植到 Android 8.0 中。在 Android 8.0 AOSP 中添加 API 将不起作用。

此功能使用 AOSP 的 android.telecom 中的公共 API,以及 android.telephony.ims 中带 @SystemApis 标记的公共 API。所有界面都位于 com.android.phone 和 AOSP 拨号器中。

如需实现 RTT,请导入 AOSP 代码,并提供为 RTT 实现 IMS 端 @SystemApis 的 IMS 堆栈。这需要:

  • 通过 ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED) 开启/关闭 RTT
  • 通过 ImsStreamMediaProfile#mRttMode 指示通话的 RTT 状态
  • 支持在 ImsCallSession 中使用以下方法:

    • sendRttMessage
    • sendRttModifyRequest
    • sendRttModifyResponse
  • 支持在 ImsCallSessionListener 中调用以下方法:

    • callSessionRttModifyRequestReceived
    • callSessionRttModifyResponseReceived
    • callSessionRttMessageReceived

自定义

您可以启用或停用此功能,方法是使用 packages/services/Telephony 的设备配置覆盖中的设备配置 config_support_rtt,以及运营商配置文件中的运营商配置标记 CarrierConfigManager.RTT_SUPPORTED_BOOL。根据配置,该功能可通过“无障碍功能”设置提供,也可以不通过该设置提供。您可以使用设备配置来更改默认设置。默认情况下,该功能设置为关闭。

验证

要验证 RTT 实现,请运行 CTS 测试,并执行拨号器 RTT 测试。

CTS 测试

CTS 测试 (android.cts.telecom.RttOperationsTest) 涵盖了实现的 AOSP 部分。对于实现的 IMS 堆栈部分,您必须提供自己的测试。

拨号器 RTT 测试

场景说明 界面模拟

如果设备停用 RTT,则会显示一条有关 RTT 的横幅。系统会显示“了解详情”选项,该选项会定向到 Google 帮助中心文章页面,其中含有关于 RTT 的更多信息。

系统显示包含号召性内容的横幅。

RTT 横幅

在拨号器设置中,“设置”>“无障碍功能”下显示“实时信息”屏幕,提供用于启用“RTT 模式”的选项。系统会显示介绍该模式的说明性文字:“在通话期间收发文本消息,而不是说和听”。

RTT 无障碍功能

默认情况下 RTT 处于启用状态时,
  • 在拨打电话时,系统显示标准的通话中拨号界面。
  • 建立通话连接后,系统显示 RTT 模式视图。如果接听用户未默认进入 RTT 模式,则在用户等待响应时,系统将显示一条表明已请求 RTT 模式的横幅。

RTT 通话中界面

如果设备停用了 RTT:
  • 来电屏幕显示标准接听器和标准通话标签页。

RTT 标准通话界面

如果设备上启用了 RTT 并且 RTT 默认设置为以 RTT 形式接听所有通话:
  • 来电屏幕显示 RTT 接听器和相关联的通话标签页。
  • 如果用户接听电话,则系统会加载 RTT 模式视图,同时启用键盘。

RTT 模式视图

RTT 的通话中界面提供了多个选项,以允许用户控制语音通话的状态以及获得 RTT 用法方面的一般性帮助。
  • 开启和关闭麦克风。
  • 开启和关闭扬声器。
  • 将音频路由到外部音频设备(如果有)。

RTT 通话中界面相关选项

“通话详情”屏幕中将显示 RTT 对话记录的一小段内容。
  • 内容片段的长度不超过一行。如果 RTT 会话没有任何对话内容,则系统会显示一则表明未存储任何内容的通知。
  • 内容片段包含表示 RTT 通话的 RTT 图标。
  • 选择“查看全部”链接可显示包含 RTT 会话全文的完整对话视图。系统将显示时间戳。用户可以使用“返回”按钮返回“通话详情”屏幕。

RTT 通话详情