注释
@RequiresApi
对于要求仅在给定的 API 级别或更高级别上调用带注释的元素很有帮助。但是,似乎没有相应的注释来要求仅在给定的 API 或更低版本上调用带注释的元素。
例如,给出类似的内容:
@RequiresMaxApi(28) // or @DeprecatedSinceAndroid(29)
fun doSomethingWithExternalStorage() {
val dir = Environment.getExternalStorageDirectory() // This is deprecated in API 29
// ...
}
从不包含如下检查的代码中调用
doSomethingWithExternalStorage()
:
if (VERSION.SDK_INT < 29) {
doSomethingWithExternalStorage()
}
如果没有上述 API 检查,
doSomethingWithExternalStorage()
将显示 lint 错误/警告,类似于 @RequiresApi
的做法。
据我了解,这也类似于
@DeprecatedSinceKotlin
的工作原理。
是否有现有的注释可以满足这些要求,或者是否有其他方法可以达到预期的结果?
试试这个
@androidx.annotation.DeprecatedSinceApi(29)
fun doSomethingWithExternalStorage() {
val dir = Environment.getExternalStorageDirectory() // This is deprecated in API 29
// ...
}
表示该API仅在给定的API级别之前有用;之后会有更合适的平台API可用。