Android API 버전을 프로그래밍 방식으로 검색하는 중
전화기가 현재 실행 중인 API 버전을 얻을 수 있는 방법이 있습니까?
Android 설명서에 설명된 대로 전화기에서 실행 중인 SDK 수준(정수)은 다음에서 사용할 수 있습니다.
android.os.Build.VERSION.SDK_INT
이 int에 해당하는 클래스가 클래스에 있습니다.
코드 예:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
// Do something for lollipop and above versions
} else{
// do something for phones running an SDK before lollipop
}
편집: 이 SDK_INT는 도넛(안드로이드 1.6 / API4) 이후부터 사용할 수 있으므로 사용 시 애플리케이션이 컵케이크(안드로이드 1.5 / API3)와 역호환되지 않도록 하십시오. 그렇지 않으면 애플리케이션이 중단됩니다(정확성에 대한 프로그래머 브루스 덕분입니다).
매우 쉽습니다.
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
int version = Build.VERSION.SDK_INT;
String versionRelease = Build.VERSION.RELEASE;
Log.e("MyActivity", "manufacturer " + manufacturer
+ " \n model " + model
+ " \n version " + version
+ " \n versionRelease " + versionRelease
);
출력:
E/MyActivity: manufacturer ManufacturerX
model SM-T310
version 19
versionRelease 4.4.2
Build.VERSION.RELEASE;
그러면 버전의 실제 숫자(2.3.3 또는 2.2)가 표시됩니다.빌드 사용과 관련된 문제입니다.VERSION.SDK_INT는 루트 전화기나 커스텀 롬이 있는 경우 비표준 OS(안드로이드가 2.3.5를 실행하고 있음)를 사용할 수 있으며 빌드를 사용할 때 null을 반환합니다.VERSION.SDK_INT를 빌드합니다.VERSION.REASE는 표준 Android 버전을 사용하든 사용하지 않든 상관없이 작동합니다!
사용하려면 이렇게 하면 됩니다.
String androidOS = Build.VERSION.RELEASE;
사용해 보십시오.
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// only for gingerbread and newer versions
}
위의 모든 사항을 고려하여, 기기에 Froyo 또는 최신 Android OS(2.2+)가 있는지 감지하는 데 사용하는 코드는 다음과 같습니다.
public static boolean froyoOrNewer() {
// SDK_INT is introduced in 1.6 (API Level 4) so code referencing that would fail
// Also we can't use SDK_INT since some modified ROMs play around with this value, RELEASE is most versatile variable
if (android.os.Build.VERSION.RELEASE.startsWith("1.") ||
android.os.Build.VERSION.RELEASE.startsWith("2.0") ||
android.os.Build.VERSION.RELEASE.startsWith("2.1"))
return false;
return true;
}
물론 일반 체커가 필요할 경우 안드로이드 1.0 및 1.5 버전을 고려하여 조건을 수정할 수 있습니다.다음과 같은 결과를 초래할 수 있습니다.
// returns true if current Android OS on device is >= verCode
public static boolean androidMinimum(int verCode) {
if (android.os.Build.VERSION.RELEASE.startsWith("1.0"))
return verCode == 1;
else if (android.os.Build.VERSION.RELEASE.startsWith("1.1")) {
return verCode <= 2;
} else if (android.os.Build.VERSION.RELEASE.startsWith("1.5")) {
return verCode <= 3;
} else {
return android.os.Build.VERSION.SDK_INT >= verCode;
}
}
당신에게 코드가 안 되면 알려주세요.
안드로이드.os.빌드.VERSION.SDK는 API Level의 가치를 제공해야 합니다.api 레벨에서 안드로이드 버전으로의 매핑은 안드로이드 설명서에서 쉽게 찾을 수 있습니다.8은 2.2에, 7은 2.1에 해당한다고 생각합니다.
SDK.INT는 Android 1.6 이상에서 지원됩니다.
SDK는 모든 버전에서 지원됩니다.
그래서 나는:
String sdk_version_number = android.os.Build.VERSION.SDK;
알겠습니다. 그것은 사용하는 것입니다.getApplicationInfo()
의 방법Context
학급.
저는 일반적으로 안드로이드 버전을 얻기 위해 다음 코드를 추가하는 것을 선호합니다.
int whichAndroidVersion;
whichAndroidVersion= Build.VERSION.SDK_INT;
textView.setText("" + whichAndroidVersion); //If you don't use "" then app crashes.
예를 들어, 위의 코드는 텍스트를 내 textView에 "29"로 설정합니다.
나는 내가 이것을 쓴 것보다 더 쉽게 다룰 수 있는 버전을 숫자로 갖는 것을 선호합니다.
public static float getAPIVerison() {
Float f = null;
try {
StringBuilder strBuild = new StringBuilder();
strBuild.append(android.os.Build.VERSION.RELEASE.substring(0, 2));
f = new Float(strBuild.toString());
} catch (NumberFormatException e) {
Log.e("", "error retriving api version" + e.getMessage());
}
return f.floatValue();
}
사용한 코드를 개선했습니다.
public static float getAPIVerison() {
float f=1f;
try {
StringBuilder strBuild = new StringBuilder();
strBuild.append(android.os.Build.VERSION.RELEASE.substring(0, 2));
f= Float.valueOf(strBuild.toString());
} catch (NumberFormatException e) {
Log.e("myApp", "error retriving api version" + e.getMessage());
}
return f;
}
언급URL : https://stackoverflow.com/questions/3423754/retrieving-android-api-version-programmatically
'programing' 카테고리의 다른 글
PHP에서 call_user_func_array를 사용하여 생성자를 호출하는 방법 (0) | 2023.07.23 |
---|---|
pip 요구 사항 파일을 사용하여 패키지를 제거하고 설치하려면 어떻게 해야 합니까? (0) | 2023.07.18 |
NumPy에서 NaN에 대한 빠른 확인 (0) | 2023.07.18 |
Python(또는 불변 데이터 유형)에서 튜플이 필요한 이유는 무엇입니까? (0) | 2023.07.18 |
Matlab의 tic 및 toc 함수에 해당하는 파이썬은 무엇입니까? (0) | 2023.07.18 |