簡體   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