Android
 Computer >> コンピューター >  >> プログラミング >> Android

プログラムからAndroidのAPIバージョンを取得する方法【サンプルコード付き】

プログラムからAndroidのAPIバージョンを取得する方法

本記事では、Androidアプリ内からプログラム的にAPIバージョン(APIレベル/SDKバージョン)を取得し、画面に表示する方法をステップごとに解説します。端末のOSバージョンに応じて処理を分岐させたい場合などに役立つ、押さえておきたい基本テクニックです。

手順1:新しいプロジェクトを作成する

まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成してください。

手順2:activity_main.xml にコードを追加する

res/layout/activity_main.xml に以下のコードを記述します。画面中央にButtonを配置し、その上に結果を表示する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:MainActivity.java にコードを追加する

src/MainActivity.java に以下のコードを記述します。ここでのポイントは Build.VERSION.SDK_INT を参照することです。このフィールドには、端末が実際に動作しているAndroidのAPIレベルが整数値で格納されています。その値をもとにswitch文で分岐し、対応するOSのコードネームを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;
                }
            }
        });
    }
}

なお、上記のように数値で直接比較する代わりに、Build.VERSION_CODES クラスの定数(例:Build.VERSION_CODES.KITKAT、Build.VERSION_CODES.LOLLIPOP など)を利用すると、コードの意味が明確になり、可読性と保守性が大きく向上します。実務ではこちらの書き方が推奨されます。

手順4:androidManifest.xml にコードを追加する

最後に、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端末をPCに接続しているものとして進めます。Android Studioからアプリを起動するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。表示された候補から自分のモバイルデバイスを選択すると、端末に以下のような初期画面が表示されます。

プログラムからAndroidのAPIバージョンを取得する方法【サンプルコード付き】

画面上のボタンをタップすると、現在のAPIレベルとそれに対応するOS名(Ice Cream Sandwich、Jelly Bean、KitKat、Lollipop、Marshmallow、Nougat、Oreo など)がTextViewに表示されます。もし一覧に含まれないバージョンの端末で実行した場合は、「Not Found」というトーストメッセージが表示される仕組みになっています。


  1. Androidで現在実行中のアプリケーションをプログラムから取得する方法

    この記事では、Androidアプリから現在実行中のアプリケーションをプログラムで取得する方法を、実際のコード例とともに段階的に解説します。ActivityManagerクラスのgetRunningTasks()メソッドを利用することで、端末上で動作しているタスク(アプリ)の情報を取得できます。全体の流れ実装は以下の4ステップで行います。Android Studioで新規プロジェクトを作成するレイアウトファイル(activity_main.xml)を編集するMainActivityにタスク情報を取得するコードを記述するAndroidManifest.xmlを確認・設定するステップ1:新規プロジェ

  2. 【Android】プログラムでアプリケーションを終了する方法|finish()とSystem.exit(0)の使い方

    はじめにこの記事では、Androidアプリをプログラム(コード)から終了させる方法を解説します。ボタンをタップするとアプリが終了するシンプルなサンプルアプリを通じて、実装手順をステップごとに見ていきましょう。ステップ1:新規プロジェクトの作成Android Studioを起動し、「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。ステップ2:レイアウトファイルの編集res/layout/activity_main.xml に以下のコードを追加します。このレイアウトには、ガイダンス用のTextViewと、アプリを終了するためのB