Android Q emulator - Build.VERSION.SDK_INT returns 28
Before the API is finalized and officially becomes API 29 (where you'd use compileSdkVersion 29
, etc), you must use 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
.
Note that Ian's solution requires AndroidX and is only available from Java/Kotlin code.
If your project is not ready for AndroidX just yet, or you need the value in a resource or the manifest, you can use bool
resources:
Create
res/values/bools.xml
and put<bool name="isQ">false</bool>
in thereCreate
res/values-v29/bools.xml
and put<bool name="isQ">true</bool>
in there
At this point, if you refer to the isQ
resource, you will get true
on Android Q and higher devices, false
otherwise.