您下载的并不是真正的“示例”,而是系统应用程序的来源。因此,它可以访问您通常无法自己访问的 SDK 的某些部分,因为该应用程序是直接针对 Android 的源代码构建的。
如果您查看Intent
源代码,您会发现以下代码段:
/**
* Alarm Changed Action: This is broadcast when the AlarmClock
* application's alarm is set or unset. It is used by the
* AlarmClock application and the StatusBar service.
* @hide
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_ALARM_CHANGED = "android.intent.action.ALARM_CHANGED";
请注意@hide
Javadoc 最后一行的注释。这表明该常量不是公共 Android SDK 的一部分。创建 Android SDK 的构建过程部分不会将此成员包含在您正在编译android.content.Intent
的android.jar
文件中的存根版本中。
注释用于出于内部@hide
目的需要公开或受保护但不被视为 SDK 开发人员应该使用的东西。
另请参阅@CommonWare 对此事的回答,或Romain Guy 在 Google Groups上的回答。
简而言之:你不能使用那个常量。您可以尝试将其替换为其字符串值 ( "android.intent.action.ALARM_CHANGED"
),但请记住,开发人员无法使用它可能是有充分理由的。知道这一点,你真的不应该尝试使用它。