2017-06-04 8 views
0

私はAccessibilityServiceを使用して観察しているアプリケーションに表示されるフローティングウィンドウを開発しています。 しかし、私は他のアプリに表示されたウィンドウを望んでいません。私はAccessibilityServiceを使用して観察しているアプリケーションにウィンドウを追加する方法?

まず、android:packageNamesプロパティを<accessibility-service>に設定します。次に、ユーザーがgetRunningTasks,getRunningAppProcessesUsageStatsManagerなどの設定したアプリを使用しているかどうかを確認するいくつかのソリューションを見つけます。しかし、彼らにはいくつかの欠点があります。

質問です:

は、私はアクセシビリティを使用して構成されたアプリが現在前景されているかどうかをチェックする方法はありますか?

OR:

ウィンドウは、私がアクセス可能性を使用して設定アプリで示されており、他のアプリに表示されないようにする方法はありますか?

ありがとうございます!

+0

パッケージを指定した場合名前、他のアプリがフォアグラウンドにあるときにアクセシビリティイベントを取得しますか?そうでない場合は、アプリケーションがフォアグラウンドに出入りするときに受け取るイベントを特定することができます。 – ataulm

+0

@ataulmに感謝しかし、私は 'android:accessibilityEventTypes =" typeAllMask "'を設定して、次のように見ています:イベントを受け取ることはできますが、イベント終了アプリはありません。 – Boolean93

+0

ああ、それは私のせいです、私は 'packageNames'を全てに設定しました。 – Boolean93

答えて

0

@ataulmのおかげで!

私は私のアプリがフォアグラウンドであるかどうかをチェックするのに最適な方法を見つける:

  1. セットアクセシビリティのpackageName
  2. すべて
  3. に設定アクセシビリティの EventTypes

  4. typeAllMaskへのJava:

    public void onAccessibilityEvent(AccessibilityEvent event) { 
        if (event == null || event.getSource() == null) { 
         return; 
        } 
        AccessibilityNodeInfo source = event.getSource(); 
        String className = source.getClassName().toString(); 
        switch (event.getEventType()) { 
         case AccessibilityEvent.TYPE_VIEW_SCROLLED: 
          Log.i(TAG, "onAccessibilityEvent: scrolled"); 
          break; 
         case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED: 
          setForegroundApp(event.getPackageName()); 
          break; 
         } 
    } 
    
    public static String sForegroundPackageName; 
    static final List<String> supportedPackagesName = blablablabla; 
    
    public static void setForegroundApp(CharSequence packageName) { 
        if (packageName != null) { 
         sForegroundPackageName = packageName.toString(); 
        } 
    } 
    
    // use this to check. 
    public static boolean isForeground() { 
        return supportedPackagesName.contains(sForegroundPackageName); 
    } 
    
関連する問題