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