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