[英]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.