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

时间:2014-09-03 21:03:03

标签: android accessibility talkback

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

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

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

任何帮助都将受到高度赞赏。

提前多多感谢。

此致 阿肖克

6 个答案:

答案 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>

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