繁体   English   中英

Android - 防止 TalkBack 读取应用程序名称和当前方向

[英]Android - Preventing TalkBack to read the application Name and current Orientation

问题是我在启动活动时使用 TTS 读取长字符串消息,但 TalkBack 会自动读取其中的应用程序名称并剪切长字符串,非常烦人。

我想禁用 TalkBack 每次启动活动时读取应用程序名称。 删除它的 android:label 属性不是一个可行的解决方案,因为该应用程序是由其他人控制的,我无法控制它。

那么,是否可以调用任何 API 来防止 TalkBack 功能在应用程序启动时读取应用程序名称?

任何帮助将不胜感激。

非常感谢。

问候, 阿肖克

一种解决方案是覆盖 Activity 中的 dispatchPopulateAccessibilityEvent() 以返回 true。 这将阻止 Talkback 宣布活动标签。

您应该将其添加到 AndroidManifest.xml

<activity
            android:name="com.mobile.myapp.test"
            android:label="About"
            android:screenOrientation="portrait" />

如果您不希望 TalkBack 读取活动名称,请将 android:label 留空。

但是这一行在启动器Activity onCreate

科特林

ViewCompat.setImportantForAccessibility(window.decorView,
ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO)

爪哇

ViewCompat.setImportantForAccessibility(getWindow().getDecorView(),
ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO);

这对我有用。

那么,是否可以调用任何 API 来防止 TalkBack 功能在应用程序启动时读取应用程序名称?

不是我所知道的。

问题是我在启动活动时使用 TTS 读取长字符串消息,但 TalkBack 会自动读取其中的应用程序名称并剪切长字符串,非常烦人。

然后稍微延迟您的“长字符串消息”,以便让 TalkBack 有时间执行其标准公告。

为了防止 TalkBack 每次切换 Activity 时读取应用程序 Name 是在 Manifest 中设置 Activity 的名称(标签):

<activity
        android:name=".pavlos.myActivity"
        android:label="Pavlos Activity" />

android:name=""添加到 Manifest 将停止 TalkBack 每次切换活动时宣布应用程序的名称。

就我而言,TalkBack误读了应用程序名称。 我通过更正 strings.xml 文件中的字符串名称解决了这个问题。

<resources>
  <string name="app_name">Your App Name</string>
</resources>

我以前有一个没有空格的名字。

<resources>
  <string name="app_name">YourAppName</string>
</resources>

我希望如果你把它留空或留空,你会得到你想要的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM