我拥有所有权限,可以获取应用列表及其使用统计信息作为UsageStats实例列表。 UsageStats有一个名为mLaunchCount的公共字段,在API 22上添加(基于文件的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);
知道发生了什么事吗?
由于
答案 0 :(得分:2)
因为mLaunchCount
不是Android SDK的一部分。在the source code中,它标有@hide
注释,用于出于Java原因public
但不属于SDK的内容。