我拥有所有权限,并且可以获取应用程序列表及其使用情况统计信息(作为UsageStats实例的列表)。 UsageStats在API 22上添加了一个名为mLaunchCount的公共字段(基于文件的git历史记录)。现在,如果手机运行的是API 22+,我现在想访问它,但是当我尝试使用它时,IDE会提示Cannot resolve symbol mLaunchCount。如果我尝试通过反射来访问它,那么它将起作用。

所以基本上这不能编译:

Log.d("test", "Count: " + usageStat.mLaunchCount);


虽然这样做:

Field mLaunchCount = UsageStats.class.getDeclaredField("mLaunchCount");
int launchCount = (Integer)mLaunchCount.get(usageStat);
Log.d("Test", "Count: " + launchCount);


知道发生了什么吗?

谢谢

最佳答案

因为mLaunchCount不属于Android SDK。在the source code中,它带有@hide注释,用于Java出于public但不属于SDK的内容。

10-08 18:05