如何检查Android版本的代码,如1.5或1.6

时间:2010-06-10 12:01:48

标签: android android-ndk

我需要检查目标设备上当前运行的Android发行版本的代码。你能提供代码示例吗?

5 个答案:

答案 0 :(得分:25)

我一直在寻找这个并没有找到解决方案 - 最终在这里结束了我自己想出来所以对那里的任何人都在寻找:

int SDK_INT = android.os.Build.VERSION.SDK_INT;

这将返回os sdk level 7 eclair 8 froyo等

答案 1 :(得分:9)

要获得Android的构建版本,请执行以下操作:2.2,2.3.3,4.0或4.0.3 ... 使用以下代码:

String deviceVersion = Build.VERSION.RELEASE;

答案 2 :(得分:1)

我认为这与我自己的问题重复:ndk version at run time。 简短回答:本机应用程序没有简单的方法可以执行此操作(但您可以运行Java应用程序并与其进行通信以获取版本)。

答案 3 :(得分:1)

您可以在设备上执行getprop ro.build.version.release shell命令吗?

答案 4 :(得分:-2)

这有效

还导入以下内容:

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;
}