diff options
author | 2018-08-22 10:58:04 -0700 | |
---|---|---|
committer | 2018-08-22 10:58:04 -0700 | |
commit | f66e5e16a1e2814f0c653bad355ac461f977536a (patch) | |
tree | e0617f8ac682e05cf917979ce234a8a2058e0c9d | |
parent | 619bafd4c254cf714b07a3208b104c70c37dc74b (diff) | |
parent | 06cd1d260b54b963baec45c7f7a756f237c24c14 (diff) |
Merge "Add maxTargetSdk to @UnsupportedAppUsage annotation." am: 29f955559a
am: 06cd1d260b
Change-Id: I05d367b1d00961e262e800c552f8ee1f2ef253e9
-rw-r--r-- | core/java/android/annotation/UnsupportedAppUsage.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/core/java/android/annotation/UnsupportedAppUsage.java b/core/java/android/annotation/UnsupportedAppUsage.java index 05de3e8caa3f..fbba6dafde29 100644 --- a/core/java/android/annotation/UnsupportedAppUsage.java +++ b/core/java/android/annotation/UnsupportedAppUsage.java @@ -51,6 +51,39 @@ public @interface UnsupportedAppUsage { long trackingBug() default 0; /** + * Indicates that usage of this API is limited to apps based on their target SDK version. + * + * Access to the API is allowed if the targetSdkVersion in the apps manifest is no greater than + * this value. Access checks are performed at runtime. + * + * This is used to give app developers a grace period to migrate off a non-SDK interface. When + * making Android version N, existing APIs can have a maxTargetSdk of N-1 added to them. + * Developers must then migrate off the API when their app is updated in future, but it will + * continue working in the meantime. + * + * Possible values are: + * <ul> + * <li> + * {@link android.os.Build.VERSION_CODES#O} or {@link android.os.Build.VERSION_CODES#P}, + * to limit access to apps targeting these SDKs (or earlier). + * </li> + * <li> + * absent (default value) - All apps can access this API, but doing so may result in + * warnings in the log, UI warnings (on developer builds) and/or strictmode violations. + * The API is likely to be further restricted in future. + * </li> + * + * </ul> + * + * Note, if this is set to {@link android.os.Build.VERSION_CODES#O}, apps targeting O + * maintenance releases will also be allowed to use the API, and similarly for any future + * maintenance releases of P. + * + * @return The maximum value for an apps targetSdkVersion in order to access this API. + */ + int maxTargetSdk() default Integer.MAX_VALUE; + + /** * For debug use only. The expected dex signature to be generated for this API, used to verify * parts of the build process. * |