manager.queryUsageStats возвращает пустой список в сервисе - PullRequest
0 голосов
/ 07 июня 2018

У меня есть служба 1x1 пикселей.Я настроил его, чтобы ловить сенсорные события вне приложения.Когда я фиксирую сенсорное событие, я хочу получить список действий.Итак ... touchEvent запускает проверку, чтобы убедиться, что у меня есть разрешения, затем запускает метод, пытающийся создать список UsageStats.Журнал «Нет статистики (НЕ НУЛЬ) ...» всегда удаляется.Даже если я открою другое приложение и нажму на его экран.Я регистрирую сенсорное событие в своем сервисе, но не получаю список UsageStats

Любая помощь будет оценена.

@TargetApi(22)
    private boolean hasPermission() {
        AppOpsManager appOps = (AppOpsManager)
                getSystemService(Context.APP_OPS_SERVICE);
        int mode = appOps.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS,
                android.os.Process.myUid(), getPackageName());
        if(mode == AppOpsManager.MODE_ALLOWED)
            Log.i(TAG, "Permmissions ... GOOD");
        else
            Log.i(TAG, "Permissions... BAD");
        return mode == AppOpsManager.MODE_ALLOWED;
    }


@TargetApi(22)
    private void retrieveUsageStats(){
        Log.i(TAG, "Inside retrieveUsageStats... ");
        UsageStatsManager manager = (UsageStatsManager) getSystemService(Context.USAGE_STATS_SERVICE);
        List<UsageStats> stats = manager.queryUsageStats(UsageStatsManager.INTERVAL_YEARLY,
                2016, 2018);
        if(stats != null && stats.size() >= 1)
        {
            Log.i(TAG, "Package Name " + stats.get(0).getPackageName());
        }
        else if(stats == null)
        {
            Log.i(TAG, "No Stats (NULL)...");
        }
        else
        {
            Log.i(TAG, "No Stats (NOT NULL)...");
        }
    }
...