为什么 UsageStats.mLaunchCount 在 IDE 中无法访问?

Why UsageStats.mLaunchCount is not accessible in IDE?

我拥有所有权限,可以获取应用程序列表,以及它们的使用情况统计信息作为 UsageStats 实例列表。 UsageStats 有一个名为 mLaunchCount 的 public 字段,添加到 API 22(基于文件的 git 历史记录)。现在,如果 phone 是 运行 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 的内容。