2017-07-07 8 views
0

では動作しません。私は私が使用してそれをクリックFORCEのSTOPボタンを見つける:アンドロイドアクセシビリティサービスACTION_CLICKは、私はアクセシビリティservice.whenを用いた力停止ボタンをクリックしようとしているウィンドウのオーバーレイ

childNodeView.performAction(AccessibilityNodeInfo.ACTION_CLICK); 

これが成功しています通常のシナリオでは、ウィンドウマネージャオーバーレイを使用してプロセスをユーザーから隠そうとすると、クリックは機能しません。

:私はクリックしようとしているボタンの上にスクリーンがあるので、多分、しかし窓オーバーレイ

これらは私のウィンドウマネージャの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); 

注:私は、私は窓のオーバーレイとクリックを実行するにはどうすればよい

異なるサービスからではなく、アクセシビリティサービスからこれを実行しますか?

答えて

1

これはオーバーレイタイプに関係していると思います。特にTYPE_PHONE。電話オーバーレイには、イベントをトラップする特殊なメカニズムがあり、ユーザーが誤ってボタンをタッチして電話で話すのを頬で触れさせることはありません。

別のタイプを試してください。あなたが望む前に、オペレーティング・システムの場合

TYPE_APPLICATION_OVERLAY 

:アンドロイドOのトライについて

SYSTEM_ALERT_WINDOW 

また、以下のフラグが有用である可能性があります

TYPE_SYSTEM_ALERT 

これらの両方は、以下の許可が必要になります上記のみで解決できない場合:

FLAG_NOT_FOCUSABLE 
+0

ありがとう!また、O. – BennyP

+0

のTYPE変更についてのヘッドアップに感謝します。アクセシビリティはFLAG_NOT_FOCUSABLEでのみ動作します。このフラグはオーバーレイビュー内のすべてのクリックリスナをキャンセルします。 FLAG_NOT_FOCUSABLEが設定されたオーバーレイビューのクリックイベントを処理する方法はありますか? – BennyP

+0

いいえ。アクセシビリティの問題が正しく働いているシナリオを見るのは混乱するので、私は選択肢を推奨するのは難しいです。 Google Playで必要な動作を示すアプリはありますか? – ChrisCM

関連する問題