首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓TalkBack反复说“服务[我的应用名称]”

安卓TalkBack反复说“服务[我的应用名称]”
EN

Stack Overflow用户
提问于 2019-03-18 00:36:35
回答 2查看 290关注 0票数 3

我有一个很受欢迎的朗读应用,也经常被视障人士和盲人使用。他们中的一些人,很少有人抱怨说,当使用应用程序或让它大声朗读时,它反复地说“语音服务”(我的应用程序的名字是@Voice aloud Reader)。我在几部启用了不同版本的安卓和TalkBack的手机上进行了测试,但无法重现这个问题。

这个应用程序正在显示一个通知,上面有阅读进度和暂停/恢复、FF和反向等按钮。当然,所有的朗读都是从服务中完成的,而不是activity,因为用户可能想要关闭我的activity,甚至关闭屏幕,然后仍然在听。我很乐意发布更多的技术细节,但不知道哪些是相关的。

我试着搜索"TalkBack反复说‘服务’“的任何组合,但找不到任何相关的东西。与我联系的用户在TalkBack应用程序中也找不到让它停止说这句话的任何设置。有没有人能解释一下这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-24 21:06:30

我找到了问题的原因,一部分是我自己的应用程序代码,另一部分是安卓系统和TalkBack在不同设备上的混淆行为。下面是正在发生的事情:

这款名为@Voice aloud Reader的应用程序可以读取加载到其中的文本(网页、文档、书籍),并突出显示它朗读的句子。每次句子更改时,它都会在自己的屏幕上更新进度,如果可见,也会在通知中更新。通知更新代码相当旧,来自Android 4天。当时我不知道如何更新通知的内容,在我看来,在使用NotificationBuilder更新内容之后,更新它的唯一方法是再次调用我的服务:

代码语言:javascript
复制
startForeground(/* id: */ 1000, myNotifBuilder.build());

多年来,它工作得很好,也是在TalkBack下,没有问题。即使是今天,在至少5个测试设备上,我使用的是Android5到9,并且有模拟器,TalkBack被激活,它仍然可以正常工作。但一些用户报告说,在阅读每个新句子(进度更新)时,TalkBack会说“服务@语音”。我最终更新了代码,如下所示,我的用户报告说问题已经解决:

代码语言:javascript
复制
        if (newNotification) {
            startForeground(/* id: */ 1000, myNotifBuilder.build());
        }
        else {
            NotificationManagerCompat.from(this).notify(1000, myNotifBuilder.build());
        }

我怀疑这些知识对很多人有帮助,现在通知被记录得更好了,并且有一个明确的“更新通知”章节解释了如何在Google文档中为开发人员正确地做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2019-03-24 12:10:03

我敢打赌,每次创建MainActivity时,它都会在方向更改上宣布应用程序名称。

SO link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55209350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档