首页 > 解决方案 > Android 画外音未在状态更新时公布

问题描述

我正在尝试在具有以下布局的 Android 远程视图中呈现自定义通知。

 --- --- --- --- --- --- --- --- --- ---- -----
|   -------------  -------------------         |
|  |  ImageView |  | TextView (Title) |        |
|  |  Icon      |  --------------------        |
|  --------------  --------------------------  |
|                  | TextView |  Chronometer | |
|                  --------------------------  |
|  ------------------------------------        |
|  |                                   |       |
|  |            ImageView              |       |
|  |                                   |       |
|  -------------------------------------       |
|                                              |
|        ---------------------------           |
|       |        Button             |          |
|       -----------------------------          |
-----------------------------------------------                 

设置

在这个远程视图设置中,文本视图表示使用 Chronometer 小部件显示倒计时计时器。开始时间由后端确定,并在构建远程视图时以编程方式配置。

当计时器到期前还有 60 秒时以及计时器到期时,将重新呈现通知。因此,如果计时器小部件的开始时间是 3 分钟,计时器将从03:00->倒计时02:5902:58一直到00:00.

当定时器值为 时01:00,即定时器还有一分钟到期,当定时器值为 时,00:00即定时器已经到期时,将重新呈现通知。我使用警报管理器在那些时候呈现通知。

所有这些自定义通知都是在相对布局中定义的,其中对齐是相互设置的。

问题

打开对讲功能后,语音会播报通知第一次聚焦的当前时间。即如果开始时间是03:00使用设置中的示例,则画外音在时间=时宣布正文的标题文本内容,正文内容03:00。但是,当还剩一分钟重新渲染时,以及计时器已经到期时,对讲不会宣布更新的通知内容。

期望的行为

我想对讲宣布通知已再次呈现。如果我要分配一个属性。我已经提到所有这些小部件都是在 RelativeLayout 中定义的,所以我将按照本文android:accessibilityLiveRegion="polite"中的建议将属性分配给 RelativeLayout,然后它每秒都会宣布倒数计时器,这是我不想要的。

我希望画外音宣布通知已在一分钟后重新呈现,并且通知已过期。我怎么做?Android codelab似乎也不包含任何信息。我已阅读开发人员的辅助功能部分,但我不知道如何实现此功能。我曾认为我需要 AccessibilityDelegate,但我找不到任何有用的材料。

标签: androidtalkbackandroid-accessibility

解决方案


推荐阅读