Игнорировать уведомления как текущий пакет переднего плана в сервисе AppLock - PullRequest
0 голосов
/ 29 марта 2019

Я создаю AppLock, и он работает отлично. У меня есть служба, которая проверяет текущие приложения переднего плана, используя UserStat. В настоящее время я показываю и скрываю блокировку приложения на основе изменения пакета. Но всякий раз, когда приходит какое-либо уведомление, оно занимает позицию текущего приоритетного приложения, а моя блокировка приложения скрывается. Из-за изменения имени пакета.

Вот мой код для получения текущего пакета переднего плана.

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static String getCurrentAppPackage(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 && stats.size() > 0) {
        SortedMap<Long, UsageStats> runningTask = new TreeMap<>();
        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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...