I need to check in code what Android release version is running currently on target device. Can you supply code example?
Asked
Active
Viewed 2.2k times
5 Answers
25
I was looking for this and didn't find a solution - ended up here and I figured it out myself so for anyone out there looking for this:
int SDK_INT = android.os.Build.VERSION.SDK_INT;
this returns os sdk level 7 eclair 8 froyo etc

Parag Chauhan
- 35,760
- 13
- 86
- 95

demonreeper
- 259
- 3
- 3
-
1This is actually not really a correct answer to the question, as SDK_INT is available from API Level 4 (Donut, 1.6) on. So, it fails when trying to detect 1.5, which was part of the question... – Zordid Mar 23 '12 at 11:41
9
To get the build version of Android like: 2.2, 2.3.3, 4.0 or 4.0.3 ... use the following code:
String deviceVersion = Build.VERSION.RELEASE;

Dion Segijn
- 2,625
- 4
- 24
- 41

dimwinds
- 91
- 1
- 4
1
I think this is a duplicate of my own question: ndk version at run time. Short answer: no easy way for a native application to do it (you could however run a Java app and communicate with it to get the version).

Community
- 1
- 1

Dror Cohen
- 6,731
- 5
- 29
- 32
1
can you execute getprop ro.build.version.release
shell command on your device ?

zed_0xff
- 32,417
- 7
- 53
- 72
-2
This works
also import the followng:
import com.android.phonetests.TEST_INTERFACE;
import android.os.Build;
import android.app.ActivityThread;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
private int GetSDKVersion()
{
int version = 0;
IPackageManager pm = ActivityThread.getPackageManager();
try
{
//returns a ref to my application according to its application name
ApplicationInfo applicationInfo = pm.getApplicationInfo("com.android.phonetests", 0);
if (applicationInfo != null)
{
version = applicationInfo.targetSdkVersion; ////this makes the same -> version = Build.VERSION.SDK_INT
Log.i(LOG_TAG,"[DBG] version: " + version);
//2 is 5
//2.01 6 (Donut - 2.01)
//2.2 7 (Eclair - 2.2) currently it is Eclair_MR1 (Major Release)
switch (version)
{
case Build.VERSION_CODES.ECLAIR_MR1:
Log.i(LOG_TAG,"[DBG] version: ECLAIR");//2.2 7 (Eclair - 2.2) currently it is Eclair_MR1 (Major Release)
break;
case Build.VERSION_CODES.DONUT:
Log.i(LOG_TAG,"[DBG] version: DONUT");//2.01 6 (Donut - 2.01)
break;
}
}
}
catch (android.os.RemoteException e){}
return version;
}
-
Unfortunately, this wasn't working on my 2.1 Nexus One. "com.android.phonetests" seems to not exist. – Steve Pomeroy Jun 30 '10 at 20:15
-
1Shouldn't you just be getting the value defined in Build.VERSION.SDK_INT instead of querying the targetSdkVersion from some random package? – Steve Pomeroy Jun 30 '10 at 20:20
-
1thanks, don't know why I didn't use this from the beginning? I simply went a difficult way :-( Thanks Ilana – ilana Jul 01 '10 at 08:14
-
Steve Pomeroy, I have used package name of my apk file => com.android.phonetests. Now any body who will use my code example should off coarse change it with his/her package name !! – ilana Jul 19 '10 at 09:41