web-dev-qa-db-ja.com

Androidのシステムバージョンを確認するにはどうすればよいですか。

システムのバージョン(1.02.2など)をプログラムで確認する方法を知っている人はいますか?

439
davs

Android.os.Build.VERSION を確認してください。

  • CODENAME:現在の開発コード名、またはこれがリリースビルドの場合は文字列 "REL"。
  • INCREMENTAL:このビルドを表すために基になるソース管理によって使用される内部値。
  • RELEASE:ユーザーに見えるバージョン文字列。
394
Robby Pond

使い方の例:

if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.Gingerbread) {
     // only for Gingerbread and newer versions
}
745
ATom

Build.Version はこのデータを保存する場所です。これをフォーマットする方法のコードスニペットがあります。

public String getAndroidVersion() {
    String release = Build.VERSION.RELEASE;
    int sdkVersion = Build.VERSION.SDK_INT;
    return "Android SDK: " + sdkVersion + " (" + release +")";
}

「Android SDK:19(4.4.4)」のように見えます

77
jpotts18
Build.VERSION.RELEASE;

それはあなたにあなたのバージョンの実際の数を与えるでしょう。別名2.3.3または2.2。 Build.VERSION.SDK_INTを使用する際の問題は、根ざした電話またはカスタムROMを使用している場合、非標準OS(別名私のAndroidは2.3.5を実行している)があり、Build.VERSION.SDK_INTを使用するとnullが返されることです。だからBuild.VERSION.RELEASEは何に関係なく動作します!

59
Falcon165o

Marshmallow以上のデバイスバージョンを確認するには、このコードを使用します。

if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.M){

    }

他の人たちと照合するには、VERSION_CODESを以下のように変更するだけです。
KitKatの場合はK、
Nougatなどのloolipop NなどのL ...

44
paulcab

Androidのバージョンは Build.VERSION を見ればわかります。

ドキュメントでは Build.VERSION.SDK_INTBuild.VERSION_CODES の値と照合することを推奨しています。

Build.VERSION.SDK_INTがAndroid 1.6(ドーナツ)と呼ばれるAPIレベル4でのみ導入されたことを理解している限り、これは問題ありません。ですから、これはあなたには影響を与えませんが、あなたがあなたのアプリをAndroid 1.5以前の上で走らせたいのなら、代わりに廃止予定の Build.VERSION.SDK を使わなければならないでしょう。

43
Dave Webb

答えについてはコメントできませんが、Kaushikの答えには大きな間違いがあります。SDK_INTはシステムバージョンと同じではありませんが、実際にはAPIレベルを指しています。

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
    //this code will be executed on devices running ICS or later
}

Build.VERSION_CODES.ICE_CREAM_SANDWICHの値は14です。14はアイスクリームサンドイッチのAPIレベルです。システムバージョンは4.0です。ですから、あなたが4.0を書くと、あなたのコードはDonutから始まるすべてのデバイス上で実行されます。なぜなら、4はDonutのAPIレベルだからです(Build.VERSION_CODES.DONUTは4).

if(Build.VERSION.SDK_INT >= 4.0){
    //this code will be executed on devices running on DONUT (NOT ICS) or later
}

この例は、「マジックナンバー」を使うのが悪い習慣である理由です。

27
Michał Kisiel

例えば、ある機能はapi21以降でのみ動作します。以下はapi21のバグを修正します。

    if(Build.VERSION.SDK_INT >= 21) {
    //only api 21 above
    }else{
   //only api 21 down
    }
16

Build.VERSION.SDK_INT は信頼できないことに注意してください。@ Falcon165oで言及されていますが、最近私もそのことに遭遇しました。

現在インストールされているAndroidのStringデータ( Androidのバージョンリスト に基づく)を取得するために、私はこのようなコードを作りました:

Java

//Current Android version data
public static String currentVersion(){
    double release=Double.parseDouble(Build.VERSION.RELEASE.replaceAll("(\\d+[.]\\d+)(.*)","$1"));
    String codeName="Unsupported";//below Jelly bean OR above Oreo
    if(release>=4.1 && release<4.4)codeName="Jelly bean";
    else if(release<5)codeName="Kit Kat";
    else if(release<6)codeName="Lollipop";
    else if(release<7)codeName="Marshmallow";
    else if(release<8)codeName="Nougat";
    else if(release<9)codeName="Oreo";
    return codeName+" v"+release+", API Level: "+Build.VERSION.SDK_INT;
}

コトリン

fun currentVersion(): String {
    val release = Java.lang.Double.parseDouble(Java.lang.String(Build.VERSION.RELEASE).replaceAll("(\\d+[.]\\d+)(.*)", "$1"))
    var codeName = "Unsupported"//below Jelly bean OR above Oreo
    if (release >= 4.1 && release < 4.4)  codeName = "Jelly bean"
    else if (release < 5) codeName = "Kit Kat"
    else if (release < 6) codeName = "Lollipop"
    else if (release < 7) codeName = "Marshmallow"
    else if (release < 8) codeName = "Nougat"
    else if (release < 9) codeName = "Oreo"
    return codeName + " v" + release + ", API Level: " + Build.VERSION.SDK_INT
}

生成される出力の例

マシュマロv6.0、APIレベル:23

14
Nikita Kurtin
if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you  like.
}
7
Kunkun Liu

このクラスを使う

import Android.os.Build;

/**
 * Created by MOMANI on 2016/04/14.
 */
public class AndroidVersionUtil {
    public static int getApiVersion() {
        return Android.os.Build.VERSION.SDK_INT;
    }

    public static boolean isApiVersionGraterOrEqual(int thisVersion) {
        return Android.os.Build.VERSION.SDK_INT >= thisVersion;
    }
}
3

このメソッドを使う:

 public static String getAndroidVersion() {
        String versionName = "";

        try {
             versionName = String.valueOf(Build.VERSION.RELEASE);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return versionName;
    }
1
Manoj Tarkar