问题
Problem is I am using TTS to read a long string message when my activity is launched, but TalkBack automatically reads the application name in the middle of it and cuts the long string and is very annoying.
I would like to disable the TalkBack read the Application name every time an activity is launched. Removing its android:label attribute is not a viable solution as the application is controlled by someone else and I have no control over it.
So, Is there any API that I could call to prevent the TalkBack feature from reading the application name when an application is launched?
Any Help would be highly appreciated.
Thanks a lot in advance.
Regards, Ashok
回答1:
A solution would be to override dispatchPopulateAccessibilityEvent() in Activity to return true. This will prevent Talkback from announcing activity label.
回答2:
But this line in onCreate
of Launcher Activity
Kotlin:
ViewCompat.setImportantForAccessibility(window.decorView,
ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO)
Java:
ViewCompat.setImportantForAccessibility(getWindow().getDecorView(),
ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO);
This worked for me.
回答3:
So, Is there any API that I could call to prevent the TalkBack feature from reading the application name when an application is launched?
Not that I am aware of.
Problem is I am using TTS to read a long string message when my activity is launched, but TalkBack automatically reads the application name in the middle of it and cuts the long string and is very annoying.
Then delay your "long string message" a bit, to give time for TalkBack to do its standard announcements.
回答4:
For Preventing TalkBack to read the application Name every time you switch activity is to set a name (label) of the Activity in Manifest:
<activity
android:name=".pavlos.myActivity"
android:label="Pavlos Activity" />
Adding android:name=""
to Manifest will stop TalkBack announcing the name of the App every time you switch Activities.
回答5:
You should add this to AndroidManifest.xml
<activity
android:name="com.mobile.myapp.test"
android:label="About"
android:screenOrientation="portrait" />
Leave android:label empty if you don't want TalkBack to read activity name.
来源:https://stackoverflow.com/questions/25653623/android-preventing-talkback-to-read-the-application-name-and-current-orientati