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