manager.queryUsageStats返回服务中的空列表

时间:2018-06-07 14:17:41

标签: android service usagestatsmanager

我有一个1x1像素的服务。我已将其设置为捕获应用程序之外的触摸事件。 当我捕获触摸事件时,我希望能够获得活动列表。所以... touchEvent触发检查以确保我具有权限,然后,它运行一个尝试创建UsageStats列表的方法。 记录“No Stats(NOT NULL)...”总是被击中。即使我打开另一个应用程序,然后单击它的屏幕。我在我的服务中注册了触摸事件,但我没有得到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)...");
        }
    }

0 个答案:

没有答案