0

アクセシビリティ サービスの助けを借りて、どの URL が Chrome カスタム タブに読み込まれているかを検出できます。次に、URL がブロック リストにある場合にタブを閉じることができるように、戻るボタンの ID を見つけたいと考えています。次のコードは次のとおりです。クリック アクションの場合:

List<AccessibilityNodeInfo> list = nodeInfo.
findAccessibilityNodeInfosByViewId("com.android.chrome:"id for back button"");
        for (AccessibilityNodeInfo node : list) {
            Log.i(TAG, "ACC::onAccessibilityEvent: back_button " + node);
            node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
        }
4

1 に答える 1

0

コードに関するすべてが適度に正確です。この関数の問題は、findAccessibilityNodeInfosByViewIdすべてのビューに viewId があるわけではないことです。これを行うには、ビュー階層を独自にクロールし、ビュー ID 以外のプロパティを探す必要があります。

viewID が何であるかを確認したい場合は、Android Device Monitor Hierarchy Dump を使用してこれにアクセスする必要があります。また、他のプロパティを理解して、より一貫性があり、依存しないものを見つけることができます。 IDで。

ここに画像の説明を入力

ここでは、Android デバイス モニターからの典型的なスクリーン ダンプを示します。ご覧のとおり、強調表示されたビューのビュー ID は、下の情報に表示されます。複数のビューがこの ID を共有できることにも注意してください。これは ViewIdResourceName であり、一意の ID ではありません。

于 2017-06-23T16:37:48.000 に答える