我拥有所有权限,并且可以获取应用程序列表及其使用情况统计信息(作为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的内容。