【问题标题】: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 资源:

    • 创建res/values/bools.xml并将<bool name="isQ">false</bool>放在那里

    • 创建res/values-v29/bools.xml并将<bool name="isQ">true</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。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-18
        • 2012-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-10
        • 2020-03-06
        相关资源
        最近更新 更多