I found some code in the forum that should be telling me if TalkBack is turned on by the user. The Log statement returns True with TalkBack turned off as well as on. The code is from 2012 so maybe it's too much outdated? If that's the case, is there any updated code that will return the TalkBack status?
Thanks.
TalkBack query from 2012:
Dim r As Reflector
r.Target = r.GetContext
r.Target = r.RunMethod2("getSystemService", "accessibility", "java.lang.String")
Dim accessibility = r.RunMethod("isEnabled"), _
isExploreByTouchEnabled = r.RunMethod("isTouchExplorationEnabled") As Boolean
Log(accessibility)
Dim context As JavaObject
Dim AccessibilityManager As JavaObject = context.InitializeContext.RunMethod("getSystemService", Array("accessibility"))
If AccessibilityManager.IsInitialized Then
Dim services As List = AccessibilityManager.RunMethod("getEnabledAccessibilityServiceList", Array(1)) 'FEEDBACK_SPOKEN
If services.Size > 0 Then
Log("Talkback is active")
End If
Dim context As JavaObject
Dim AccessibilityManager As JavaObject = context.InitializeContext.RunMethod("getSystemService", Array("accessibility"))
If AccessibilityManager.IsInitialized Then
Dim services As List = AccessibilityManager.RunMethod("getEnabledAccessibilityServiceList", Array(1)) 'FEEDBACK_SPOKEN
If services.Size > 0 Then
Log("Talkback is active")
End If
Thanks for the revised coding. I'm now using it as a sub routine.
B4X:
Sub TalkBackIsActive As Boolean
Dim blnReturnValue As Boolean = False
Dim context As JavaObject
Dim AccessibilityManager As JavaObject = context.InitializeContext.RunMethod("getSystemService", _
Array("accessibility"))
If AccessibilityManager.IsInitialized Then
Dim services As List = AccessibilityManager.RunMethod("getEnabledAccessibilityServiceList", _
Array(1)) 'FEEDBACK_SPOKEN
If services.Size > 0 Then
blnReturnValue = True
End If
End If
Return blnReturnValue
End Sub