在Android UsageEvents.Event getClass()。getName()仅返回android.app.usage.UsageEvents $ Event而不是名称

时间:2018-01-18 19:49:45

标签: java android usageevents

我正在尝试使用我的Android应用。 Android提供package来获取该信息。要获取活动,我需要设置一个时间并从不同的应用程序中检索事件列表,我只对我自己的应用程序中的事件感兴趣。

UsageStatsManager usm = (UsageStatsManager)context.getSystemService(USAGE_STATS_SERVICE);
Calendar calendar = Calendar.getInstance();
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.WEEK_OF_YEAR, -1);
long startTime = calendar.getTimeInMillis();
List<UsageStats> luStats = usm.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,startTime,endTime);
while (uEvents.hasNextEvent()){
    UsageEvents.Event e = new UsageEvents.Event();
    uEvents.getNextEvent(e);
    if (e != null){
        Log.d(TAG, "Event: " + e.getPackageName() + "\t" +e.getClass().getName()+ "\t" +  dateFormat.format(new Date (e.getTimeStamp())));
            }
        }

问题是e.getClass().getName()的结果不是使用的类的名称,而只是android.app.usage.UsageEvents$Event。我究竟做错了什么?如何从事件中检索类的名称?

任何线索都表示赞赏!

1 个答案:

答案 0 :(得分:0)

我发现了我的错误。

我需要的方法是Exclude From Build而不是getClassName()。我在事件getClass().getName()上改变了这一点,我可以检索所有正在寻找的类。