タッチによる探索がオンになっている場合、1本指のタッチイベントはホバーイベントに変換されます。これらのイベントを監視するには、ビューにOnHoverListenerを追加するか、 View.onHoverEventをオーバーライドします。
これらのイベントをインターセプトしたら、通常はそれらを通常のタッチ処理コードに渡し、ホバーアクションからタッチアクションにマップできます(以下を参照)。
@Override
public boolean onHoverEvent(MotionEvent event) {
if (mAccessibilityManager.isTouchExplorationEnabled()) {
return onTouchEvent(event);
} else {
return super.onHoverEvent(event);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_HOVER_ENTER:
return handleDown(event);
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_HOVER_MOVE:
return handleMove(event);
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_HOVER_EXIT:
return handleUp(event);
}
return false;
}