2

我有一个 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)...");
        }
    }
4

0 回答 0