是否有表示最大 Android API 版本的注释?

问题描述 投票:0回答:1

注释

@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
的工作原理。

是否有现有的注释可以满足这些要求,或者是否有其他方法可以达到预期的结果?

android android-appcompat androidx backwards-compatibility android-annotations
1个回答
0
投票

试试这个

@androidx.annotation.DeprecatedSinceApi(29)
fun doSomethingWithExternalStorage() {
    val dir = Environment.getExternalStorageDirectory() // This is deprecated in API 29
    // ...
}

来自androidx-annotation-docs

表示该API仅在给定的API级别之前有用;之后会有更合适的平台API可用。

© www.soinside.com 2019 - 2024. All rights reserved.