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