본문 바로가기

개발도구/aOS - 안드로이드 개발

[펌-안드로이드] 빌드 코드(버전) 확인하는 방법

int sdkVersion = Integer.parseInt(Build.VERSION.SDK);

if (sdkVersion == Build.VERSION_CODES.ECLAIR) // SDK version이 2.0 이라면...

{ 필요한 내용 }


SDK 1.6 이상의 소스만을 위한 code... 

int sdkVersion = Build.VERSION_CODES.SDK);

if (sdkVersion == Build.VERSION_CODES.ECLAIR) // SDK version이 2.0 이라면...

{ 필요한 내용 }




본문은 이렇게 되어있으나 

2.1에서 Build.VERSION_CODES.SDK 참조가 에러나는 관계로

첫번째 방법이 잘 됨을 확인.




출처 : http://withwani.tistory.com/135 (박투)




아래소스도 뭔가 활용이 되지 않을까 생각됨.


public int getAPIVersion() {

                if (sdkVersion > 0) {
                        return sdkVersion;
                }
                String SDK_INT_FIELD = "SDK_INT";
                String SDK_STRING_FIELD = "SDK";
                try {
                        Field sdkField = android.os.Build.VERSION.class.getDeclaredField(SDK_INT_FIELD);
                        if (sdkField != null) {
                                sdkVersion = sdkField.getInt(android.os.Build.VERSION.class.newInstance());
                                Logger.DEBUG(TAG, "API version : " + sdkVersion);
                                if (sdkVersion > 0)
                                        return sdkVersion;
                        }
                } catch (Exception e) {
                        Logger.DEBUG(TAG, "Could not get SDK_INT field for sdk version !");
                }

                try {
                        Field sdkField = android.os.Build.VERSION.class.getDeclaredField(SDK_STRING_FIELD);
                        if (sdkField != null) {
                                Object temp = sdkField.get(android.os.Build.VERSION.class.newInstance());
                                if (temp instanceof String) {
                                        String sdkVerString = (String) temp;
                                        try {
                                                sdkVersion = Integer.parseInt(sdkVerString);
                                                Logger.DEBUG(TAG, "API version : " + sdkVersion);
                                                if (sdkVersion > 0)
                                                        return sdkVersion;
                                        } catch (Exception e) {
                                                Logger.DEBUG(TAG, "Could not get API version from sdkVerString : " + sdkVerString);
                                        }
                                }
                        }
                } catch (Exception e) {
                        Logger.DEBUG(TAG, "Could not get SDK_INT field for sdk version !");
                }
                Logger.DEBUG(TAG, "Could not get API version !");
                return 0;
        }