Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드 API 버전을 프로그래밍 방식으로 확인하는 방법 완벽 가이드

앱 개발 시 기기의 안드로이드 버전에 따라 다른 동작을 처리해야 하는 경우가 자주 있습니다. 이번 튜토리얼에서는 Build.VERSION.SDK_INT를 활용해 현재 실행 중인 기기의 안드로이드 API 레벨을 프로그래밍 방식으로 가져오고, 이를 젤리빈(Jelly Bean), 킷캣(KitKat) 같은 버전 이름으로 화면에 표시하는 방법을 단계별로 알아봅니다.

1단계: 새 프로젝트 생성

Android Studio에서 File → New Project를 선택하고, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다.

2단계: 레이아웃 파일 작성

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 화면 중앙에는 버튼을 배치하고, 그 위쪽에 API 버전을 표시할 TextView를 위치시킵니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:layout_above="@id/button"
        android:layout_centerInParent="true"
        android:layout_marginBottom="12sp"
        android:textSize="24sp"
        android:textStyle="bold|italic" />
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="Get Android API Version" />
</RelativeLayout>

3단계: 메인 액티비티 코드 작성

src/MainActivity.java 파일에 아래 코드를 추가합니다. 핵심은 Build.VERSION.SDK_INT 값으로, 이 정수 값이 바로 해당 기기의 API 레벨입니다. switch 문으로 각 API 레벨에 대응되는 안드로이드 버전 이름을 매핑하여 TextView에 출력합니다.

import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    Button button;
    TextView textView;
    int androidVersion;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                androidVersion = Build.VERSION.SDK_INT;
                switch (androidVersion) {
                    case 14:
                        textView.setText("15, Ice Cream Sandwich");
                        break;
                    case 15:
                        textView.setText("15, Ice Cream Sandwich");
                        break;
                    case 16:
                        textView.setText("16, Jelly Bean");
                        break;
                    case 17:
                        textView.setText("17, Jelly Bean");
                        break;
                    case 18:
                        textView.setText("18, Jelly Bean");
                        break;
                    case 19:
                        textView.setText("19, KitKat");
                        break;
                    case 21:
                        textView.setText("21, Lollipop");
                        break;
                    case 22:
                        textView.setText("22, Lollipop");
                        break;
                    case 23:
                        textView.setText("23, Marshmallow");
                        break;
                    case 24:
                        textView.setText("24, Nougat");
                        break;
                    case 25:
                        textView.setText("25, Nougat");
                        break;
                    case 26:
                        textView.setText("26, Oreo");
                        break;
                    default:
                        Toast.makeText(MainActivity.this, "Not Found", Toast.LENGTH_LONG).show();
                        break;
                }
            }
        });
    }
}

4단계: 매니페스트 설정

androidManifest.xml 파일에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

앱 실행 및 결과 확인

이제 앱을 실행해 보겠습니다. 실제 안드로이드 스마트폰을 컴퓨터에 연결한 상태라고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭하세요. 목록에서 본인의 모바일 기기를 선택하면, 앱이 설치되어 기본 화면이 표시됩니다.

버튼을 누르면 현재 기기의 API 레벨과 대응되는 안드로이드 버전 이름이 화면에 나타납니다. 만약 코드에 정의되지 않은 API 레벨이라면 "Not Found"라는 토스트 메시지가 표시됩니다.

안드로이드 API 버전을 프로그래밍 방식으로 확인하는 방법 완벽 가이드

참고 사항

API 레벨 20(KITKAT_WATCH)은 웨어러블 전용 버전이라 위 예제에서는 생략되어 있으며, 오레오(Oreo) 이후 버전(P, Q, R 등)도 필요에 따라 case 문에 추가로 매핑하면 됩니다. 또한 최신 프로젝트에서는 android.support.v7.app.AppCompatActivity 대신 androidx.appcompat.app.AppCompatActivity를 사용하는 것이 권장됩니다.