2014-09-03 37 views
6

問題是我正在使用TTS在我的活動啓動時讀取長字符串消息,但話語提示自動讀取中間的應用程序名稱並剪切長字符串並且非常煩人。Android - 防止TalkBack讀取應用程序名稱和當前方向

我想在每次啓動活動時禁用TalkBack讀取應用程序名稱。刪除它的android:label屬性不是一個可行的解決方案,因爲該應用程序由其他人控制,我無法控制它。

那麼,是否有任何API可以調用以防止TalkBack功能在應用程序啓動時讀取應用程序名稱?

任何幫助將不勝感激。

非常感謝。

問候, 阿肖克

+0

當你說「應用程序被別人控制」時,你是否仍然能夠在Activity.onCreate()中添加代碼? – alanv 2014-09-03 21:44:40

+0

是的。我可以控制活動,但不能控制應用程序的清單文件。 – ASingal 2014-09-03 21:50:04

回答

1

那麼,有沒有辦法,我可以打電話,以防止話語提示功能,從讀取應用程序的名稱時,應用程序啓動任何API?

不是我所知道的。

問題是我正在使用TTS在我的活動啓動時讀取長字符串消息,但話語提示會自動讀取應用程序名稱,並切斷長字符串,非常煩人。

然後稍微延遲您的「長字符串消息」,爲TalkBack留出時間來執行其標準通知。

+0

我完全一樣,但我想知道是否有任何其他方式來處理這個問題。感謝您的回覆。萬分感激。 – ASingal 2014-09-03 22:59:47

6

解決方法是重寫Activity中的dispatchPopulateAccessibilityEvent()以返回true。這將阻止Talkback公佈活動標籤。

0
<activity 
      android:name="com.mobile.myapp.test" 
      android:label="About" 
      android:screenOrientation="portrait" /> 

如果您不想讓TalkBack讀取活動名稱,請留空android:標籤爲空。

+2

當標籤爲空時,使用應用程序名稱。 – userM1433372 2016-10-10 11:36:48

1

但是這條線在發射ActivityonCreate

ViewCompat.setImportantForAccessibility(getWindow().getDecorView(),ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO); 它爲我工作。

相關問題