Build.VERSION.SDK_INT
在 Android Q 模拟器上运行时返回 28 而不是 29。有什么我想念的吗?我正在尝试专门为 Android Q 添加逻辑,但我不知道如何正确确定此版本。
app.gradle 文件包含
targetSdkVersion = 'Q'
compileSdkVersion = 'android-Q'
Build.VERSION.SDK_INT
在 Android Q 模拟器上运行时返回 28 而不是 29。有什么我想念的吗?我正在尝试专门为 Android Q 添加逻辑,但我不知道如何正确确定此版本。
app.gradle 文件包含
targetSdkVersion = 'Q'
compileSdkVersion = 'android-Q'
在 API 最终确定并正式成为 API 29(您将在其中使用compileSdkVersion 29
等)之前,您必须使用BuildCompat.isAtLeastQ()
:
检查设备是否在 Android Q 或更高版本的预发布版本上运行。
注意:此方法将在运行 Android 发行版的设备上返回 false。当 Android Q 最终确定发布时,此方法将被弃用,所有调用都应替换为
Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
.
请注意,Ian 的解决方案需要 AndroidX,并且仅适用于 Java/Kotlin 代码。
如果您的项目还没有为 AndroidX 做好准备,或者您需要资源或清单中的值,您可以使用bool
资源:
创建res/values/bools.xml
并<bool name="isQ">false</bool>
放入
创建res/values-v29/bools.xml
并<bool name="isQ">true</bool>
放入
此时,如果您引用isQ
资源,您将true
在Android Q及更高版本的设备上获取,false
否则。