2016-08-01 31 views

答えて

0

を修正したので、あなたは間違いなく、私は、使用アクセス機能を使用してこれを行うことができます考え出しgetRunningTasksを使用する必要はありません。希望のアプリがフォアグラウンドである場合

@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
public static String getForegroundProcess(Context context) { 
    String topPackageName = null; 
    UsageStatsManager usage = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE); 
    long time = System.currentTimeMillis(); 
    List<UsageStats> stats = usage.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*1000, time); 
    if (stats != null) { 
     SortedMap<Long, UsageStats> runningTask = new TreeMap<Long,UsageStats>(); 
     for (UsageStats usageStats : stats) { 
      runningTask.put(usageStats.getLastTimeUsed(), usageStats); 
     } 
     if (runningTask.isEmpty()) { 
      return null; 
     } 
     topPackageName = runningTask.get(runningTask.lastKey()).getPackageName(); 
    } 
    if(topPackageName==null) { 
     Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); 
     context.startActivity(intent); 
    } 

    return topPackageName; 
} 

は今継続的に確認してください。

String fg=getForegroundProcess(getApplicationContext()); 
    if(fg != null && fg.contains("com.instagram.android")){ 
     startService(new Intent(getApplicationContext(), bdownload.class)); 
    }else { 
     stopService(new Intent(getApplicationContext(), bdownload.class)); 
    } 

私は継続的に仕事のservice.Whichで上記のコードを実行するには、 ロリポップ以上で利用可能です。

0

にロリポップと上記のバージョンをターゲットにしているうん、あなたがそれを行うことができる唯一の方法は、アクセシビリティサービスを通じてです。このページを見て、作成方法を理解してください。 https://developer.android.com/training/accessibility/service.htmlまた、サービス - >アクセシビリティ画面でサービスを有効にする必要があります。

アクセシビリティイベント.YPE_WINDOW_STATE_CHANGEDおそらく、あなたはおそらく、Instigramが一番上にあるかどうかを調べるためにパッケージを先に調べることができます。

機能がアンドロイド5.0以上で

関連する問題