【问题标题】:Android Q emulator - Build.VERSION.SDK_INT returns 28Android Q 模拟器 - Build.VERSION.SDK_INT 返回 28
【发布时间】:2019-08-27 22:33:03
【问题描述】:
Build.VERSION.SDK_INT
在 Android Q 模拟器上运行时返回 28 而不是 29。有什么我想念的吗?我正在尝试专门为 Android Q 添加逻辑,但我不知道如何正确确定此版本。
app.gradle 文件包含
targetSdkVersion = 'Q'
compileSdkVersion = 'android-Q'
【问题讨论】:
标签:
android
sdk
target-sdk
targetsdkversion
android-10.0
【解决方案1】:
请注意,Ian 的解决方案需要 AndroidX,并且仅适用于 Java/Kotlin 代码。
如果您的项目还没有为 AndroidX 做好准备,或者您需要资源或清单中的值,您可以使用 bool 资源:
此时,如果您引用isQ资源,在Android Q及更高版本的设备上您将获得true,否则为false。
【解决方案2】:
在 API 最终确定并正式成为 API 29 之前(您将使用 compileSdkVersion 29 等),您必须使用 BuildCompat.isAtLeastQ():
检查设备是否在 Android Q 或更高版本的预发布版本上运行。
注意:此方法将在运行 Android 发行版的设备上返回 false。当 Android Q 最终发布时,此方法将被弃用,所有调用都应替换为Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q。