Android Q 模拟器 - Build.VERSION.SDK_INT returns 28
Android Q emulator - Build.VERSION.SDK_INT returns 28
Build.VERSION.SDK_INT
returns 在 Android Q 模拟器上 运行 时,28 而不是 29。我有什么想念的吗?我正在尝试专门为 Android Q 添加逻辑,但我不知道如何正确确定此版本。
app.gradle 文件包含
targetSdkVersion = 'Q'
compileSdkVersion = 'android-Q'
在 API 最终确定并正式成为 API 29(您将使用 compileSdkVersion 29
等)之前,您必须使用 BuildCompat.isAtLeastQ()
:
Checks if the device is running on a pre-release version of Android Q or newer.
Note: This method will return false on devices running release versions of Android. When Android Q is finalized for release, this method will be deprecated and all calls should be replaced with 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
资源,您将在 Android Q 及更高版本的设备上获得 true
,否则 false
。
Build.VERSION.SDK_INT
returns 在 Android Q 模拟器上 运行 时,28 而不是 29。我有什么想念的吗?我正在尝试专门为 Android Q 添加逻辑,但我不知道如何正确确定此版本。
app.gradle 文件包含
targetSdkVersion = 'Q'
compileSdkVersion = 'android-Q'
在 API 最终确定并正式成为 API 29(您将使用 compileSdkVersion 29
等)之前,您必须使用 BuildCompat.isAtLeastQ()
:
Checks if the device is running on a pre-release version of Android Q or newer.
Note: This method will return false on devices running release versions of Android. When Android Q is finalized for release, this method will be deprecated and all calls should be replaced with
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
资源,您将在 Android Q 及更高版本的设备上获得 true
,否则 false
。