2017-03-01 3 views
0

私はを初期化するためにAccessibilityDelegateCompatのカスタムビューを持っていますが、「ダブルタップしてアクティブにする」のようなデフォルトのアクションは避けたり削除したりするにはどうしたらいいですか?AccessibillityNodeInfoのアクションを無効にする

私AccessibilityActionCompatは、次のようになります。

playVideoAction = new AccessibilityNodeInfoCompat 
       .AccessibilityActionCompat(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_ACCESSIBILITY_FOCUS 
       .getId(), 
       "Double tap to play video"); 

と私はonInitializeAccessibilityNodeInfo()accessibilityNodeInfoCompat.addAction(playVideoAction)を呼び出します。

「ビデオを再生するにはダブルタップ」と「アクティブにするにはダブルタップ」の両方が聞こえます。私はビデオの再生を聞くだけです。

+0

あなたは '' 'AccessibilityNodeInfoCompat.removeAction(AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS)' ''を試してみましたか? –

答えて

2

プライマリインタラクションモード(ダブルタップなど)の内容を変更する場合は、[フォーカス]ではなく[クリック]アクションを無効にする必要があります。

playVideoAction = new AccessibilityActionCompat(
    AccessibilityNodeInfoCompat.ACTION_CLICK, "play video"); 

また、説明にはインタラクションモデルではなく、実行するアクションのみを含める必要があります。「ビデオを再生する」だけです。アクセシビリティサービスは、インタラクションモデルを管理し、「ダブルタップ」の説明を追加する役割を担います。この説明は、スイッチアクセスまたはボイスのようなアクセシビリティサービスの他のタイプでは異なります。

+0

がきれいです。 "double tap to ******"全体を置き換える方法はありますか? –

+0

@RedMこれは遅いですが、単に 'info.addAction(AccessibilityNodeInfoCompat.ACTION_FOCUS); 'を使うと、デフォルトのアナウンスメントが削除されます –

関連する問題