实现实时文本

本页面介绍了如何在 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.telecomandroid.telephony.ims 中的 @SystemApis 中的公共 API。所有界面都位于 com.android.phone 和 AOSP 拨号器中。

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

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

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

    • callSessionRttModifyRequestReceived
    • callSessionRttModifyResponseReceived
    • callSessionRttMessageReceived

自定义

您可以使用设备配置 config_support_rtt(在 packages/services/Telephony 的设备配置叠加层中)和运营商配置标志 CarrierConfigManager.RTT_SUPPORTED_BOOL(在运营商配置文件中)启用或停用此功能。根据配置,此功能可以通过“无障碍”设置提供,也可以不提供。使用设备配置更改默认设置。默认情况下,此功能设置为“关闭”。

验证

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

CTS 测试

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

拨号器 RTT 测试

场景描述 UI 模拟
如果设备上停用了 RTT,则会显示关于 RTT 的对话框。

RTT banner

在拨号器设置中,“实时文本”屏幕位于设置 > 无障碍下方,其中提供了一个选项来选择不同的 RTT 模式。

RTT accessibility

当默认启用 RTT 时
  • 在拨打电话时,会显示标准通话中拨号界面。
  • 通话连接后,会显示 RTT 模式视图。如果接收用户未默认进入 RTT 模式,则在等待响应时,会显示一条横幅,指示已请求 RTT 模式。

RTT in-call UI

如果设备上停用了 RTT
  • 来电屏幕会显示标准接听滑块和标准通话标签。

RTT standard call UI

如果设备上启用了 RTT 并且默认设置为以 RTT 模式接听所有来电
  • 来电屏幕会显示 RTT 滑块和关联的通话标签。
  • 接听来电会加载启用键盘的 RTT 模式视图。

RTT mode view

在 RTT 的通话中界面中,提供了用于让用户控制语音通话状态以及获取有关使用 RTT 的常规帮助的选项
  • 开启和关闭麦克风。
  • 开启和关闭扬声器。
  • 使用键盘作为输入。
  • 添加另一个通话。
  • 从 RTT 通话切换到语音通话。
  • 开启和关闭保持。

RTT in-call UI options

在“通话详情”屏幕中,选择“查看文字记录”链接会显示一个完整的对话视图,其中包含 RTT 会话的完整文本。此时会显示时间戳。用户可以使用返回按钮返回到“通话详情”屏幕。

RTT call details