如何在我的应用程序中停止 TalkBack 的 Touch To Explore 功能

How to stop Touch To Explore feature of TalkBack in my app

我正在为盲人做一个项目,如果用户在他的 phone.

上激活 TalkBalk,我需要解决很多问题

我正在为盲人创建一个软键盘,盲人将用单指点击圆圈 "Braille Cell Dots" 以生成盲文代码,然后他输入 character/number/symbols 他想要的以盲文语言呈现。

我现在的问题是 TalkBack 的 Touch To Explore 功能,用户将无法在屏幕上单击,因为这个动作现在由 TalkBack 处理,用户必须双击该点,而这不是适合我的应用!

即使在 TalkBack 中启用了 Touch to Explore 功能,如何生成单击?

你不知道。这是个糟糕的主意。提出适合 TalkBack 允许的手势和机制。如果您可以注释不允许与对讲一起使用的应用程序的特定功能或机制,我可以推荐一个替代方案。什么手势不起作用?

Based on this answer 解决了我的问题,因为如果启用触摸探索,单点触摸事件会转换为悬停事件,我添加了 onHoverEvent 来调用 onTouchEvent 并起作用很好:

@Override
public boolean onHoverEvent(MotionEvent event) {
    //Move AccessibilityManager object to the constructor 
    AccessibilityManager am = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (am.isTouchExplorationEnabled()) {
        return onTouchEvent(event);
    } else {
        return super.onHoverEvent(event);
    }
}

并将悬停动作处理到 onTouchEvent:

@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
    case MotionEvent.ACTION_HOVER_ENTER:
    //Your Code
    break;
    case MotionEvent.ACTION_MOVE:
    case MotionEvent.ACTION_HOVER_MOVE:
    //Your Code
    break;
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_HOVER_EXIT:
    //Your Code
    break;    

}

return true;
}

我会编辑我的问题以使其更清晰:)