0

Je suis capable de détecter quelle URL est en cours de chargement dans l'onglet personnalisé Chrome avec l'aide du service d'accessibilité, et maintenant je veux trouver l'ID du bouton de retour afin que je puisse fermer l'onglet si l'URL est dans la liste des blocs, suivant le code pour l'action de clic:Bloquer l'URL dans Crome Onglets personnalisés Android

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); 
     } 
+0

donc, vous voulez fermer l'onglet du navigateur chrome si l'URL dans la liste de blocage? – Vij

+0

oui mais de crome onglet personnalisé, pas le navigateur – Mayur

Répondre

0

Tout sur votre code est raisonnablement précis. Le problème avec la fonction findAccessibilityNodeInfosByViewId n'est pas toutes les vues ont un ID de vue. Pour ce faire, vous devrez effectuer votre propre exploration dans la hiérarchie de vue et rechercher des propriétés autres que ID de vue. Si vous souhaitez voir ce qu'est l'ID d'affichage, vous devez utiliser le vidage de la hiérarchie du moniteur de périphérique Android pour y accéder, et également aider à comprendre les autres propriétés que vous pouvez consulter pour voir ce que vous pouvez trouver de plus cohérente et ne pas compter sur un ID.

enter image description here

Nous voyons ici une copie d'écran typique du moniteur de l'appareil Android. Comme vous pouvez le voir, l'identifiant de la vue en surbrillance apparaît dans les informations ci-dessous si elle en a une. Notez également que plusieurs vues peuvent partager cet ID! C'est le ViewIdResourceName, PAS un identifiant unique.

+0

c'est exactement ce que je cherchais, merci !! – Mayur