我正在尝试获取我的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。我做错了什么?如何从事件中检索类的名称?
任何线索都很感谢!
发布于 2018-01-19 04:02:48
我发现了我的错误。
我需要的方法是getClassName()而不是getClass().getName()。我在Event e上更改了这一点,这样我就可以检索正在查找的所有类。
https://stackoverflow.com/questions/48329226
复制相似问题