2017-07-07 3 views
0

Je suis en train de cliquer sur le bouton d'arrêt de la force en utilisant le service.when d'accessibilité je trouve le bouton STOP FORCE je clique à l'aide:service d'accessibilité android ACTION_CLICK ne fonctionne pas avec superposition de fenêtre

childNodeView.performAction(AccessibilityNodeInfo.ACTION_CLICK); 

cela réussit Dans le scénario ordinaire, cependant, lorsque j'essaie de masquer le processus de l'utilisateur à l'aide d'une superposition de gestionnaire de fenêtres, le clic ne fonctionne pas. Cela fait depuis peut-être parce qu'il ya un écran sur le bouton que je suis en train de cliquer, mais il y a plusieurs applications sur le magasin de jeu qui ont la fonctionnalité décrite avec une superposition de fenêtre

ce sont mes gestionnaires de fenêtres params:

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.MATCH_PARENT, 
      WindowManager.LayoutParams.MATCH_PARENT, 
      WindowManager.LayoutParams.TYPE_PHONE, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      PixelFormat.TRANSLUCENT); 


    params.gravity = Gravity.TOP | Gravity.START; 
    oneTapProgressView = new OneTapProgressView(this); 
    windowManager.addView(oneTapProgressView, params); 

note: Je lance ce à partir d'un autre service et non du service d'accessibilité

Comment puis-je effectuer le clic avec la superposition de fenêtre?

Répondre

1

je crois que cela est lié au type de revêtement. Plus précisément TYPE_PHONE. superpositions téléphoniques ont des mécanismes spéciaux pour intercepter les événements afin que les utilisateurs ne se touchent pas accidentellement des boutons avec leur joue pourquoi parler au téléphone.

Vous devriez essayer un autre type. Pour Android O Essayez:

TYPE_APPLICATION_OVERLAY 

Pour les systèmes d'exploitation antérieurs que vous voulez:

TYPE_SYSTEM_ALERT 

Ces deux nécessitera l'autorisation suivante:

SYSTEM_ALERT_WINDOW 

En outre, les indicateurs suivants peuvent être utiles si le seul au-dessus ne fixe pas:

FLAG_NOT_FOCUSABLE 
+0

merci cela fonctionne! grâce aussi à la tête sur le changement de type O. dans – BennyP

+0

suivi question: l'accessibilité ne fonctionne qu'avec FLAG_NOT_FOCUSABLE pour moi. cet indicateur annule tous les écouteurs de clic dans la vue de superposition. Existe-t-il un moyen de gérer les événements de clic dans la vue de superposition avec l'ensemble FLAG_NOT_FOCUSABLE? – BennyP

+0

Non. Mais il m'est difficile de recommander des alternatives, car il me serait déroutant de voir un scénario où les choses d'accessibilité fonctionnent correctement et pas autrement. Existe-t-il une application présentant le comportement souhaité sur Google Play? – ChrisCM