问题是我在启动活动时使用TTS读取长字符串消息,但是TalkBack会自动在其中间读取应用程序名称并剪切长字符串并且非常烦人。
我想在每次启动活动时禁用TalkBack读取应用程序名称。删除其android:label属性不是一个可行的解决方案,因为应用程序是由其他人控制的,我无法控制它。
那么,是否有任何API可以阻止TalkBack功能在应用程序启动时读取应用程序名称?
任何帮助都将受到高度赞赏。
提前多多感谢。
此致 阿肖克
答案 0 :(得分:6)
解决方案是覆盖Activity中的dispatchPopulateAccessibilityEvent()以返回true。这将阻止Talkback宣布活动标签。
答案 1 :(得分:3)
但是在onCreate
Activity
中这一行
<强>科特林强>:
ViewCompat.setImportantForAccessibility(window.decorView,
ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO)
<强>爪哇强>:
ViewCompat.setImportantForAccessibility(getWindow().getDecorView(),
ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO);
这对我有用。
答案 2 :(得分:2)
那么,是否有任何API可以阻止TalkBack功能在应用程序启动时读取应用程序名称?
不是我知道的。
问题是我在启动活动时使用TTS读取长字符串消息,但是TalkBack会自动在其中间读取应用程序名称并剪切长字符串并且非常烦人。
然后稍微延迟你的“长串消息”,给TalkBack留出时间做标准公告。
答案 3 :(得分:1)
您应该将其添加到AndroidManifest.xml
<activity
android:name="com.mobile.myapp.test"
android:label="About"
android:screenOrientation="portrait" />
如果您不想让TalkBack读取活动名称,请将android:label留空。
答案 4 :(得分:1)
防止TalkBack每次切换活动时都要读取应用程序名称是设置清单中活动的名称(标签):
<activity
android:name=".pavlos.myActivity"
android:label="Pavlos Activity" />
将android:name=""
添加到Manifest将阻止TalkBack在每次切换活动时宣布应用程序的名称。
答案 5 :(得分:0)
就我而言,TalkBack 将应用名称读错了。 我通过更正 strings.xml 文件中的字符串名称解决了这个问题。
<resources>
<string name="app_name">Your App Name</string>
</resources>
我以前的名字没有空格。
<resources>
<string name="app_name">YourAppName</string>
</resources>
我希望如果你把它留空或留空,你会得到你想要的效果。