Android端末から機種名やバージョンなどビルド情報を取得する方法を紹介します。
Android.os.Buildを使うと、機器固有の情報を取り扱うことができます。
Android.os.Buildから取得できる文字列、情報
取得できるビルド情報 | 説明 |
---|---|
BOARD | ボード(基盤)名称 |
BOOTLOADER | ブートローダのバージョン番号(Android 1.6未対応) |
BRAND | ブランド名(たとえばキャリア、メーカー名など) |
CPU_ABI | ネイティブコードの命令セット(armeabi-v7aなどCPU-ABI順) |
CPU_ABI2 | ネイティブコードの第2命令セット(Android 1.6未対応) |
DEVICE | デバイス名 |
DISPLAY | ユーザへ表示するビルドID |
FINGERPRINT | 一意にビルドを識別することができる識別子 |
HARDWARE | ハードウェア名(Android1.6未対応) |
HOST | ホスト名 |
ID | 変更番号もしくは一意なラベル |
MANUFACTURER | 製造者名 |
MODEL | 最終的にユーザへ表示するモデル名 |
PRODUCT | 製品名 |
RADIO | 無線ファームウェアのバージョン(Android1.6未対応) |
TAGS | release-keys、test-keysなど。ビルドのタグ名 |
TIME | システム時刻 |
TYPE | ビルドタイプ。userやengなど |
UNKNOWN | 情報不明時の識別子(不明を示す文字列"unknown"など。Android1.6未対応) |
USER | ユーザ情報 |
VERSION.CODENAME | 開発コードネーム。リリース時は"REL" |
VERSION.INCREMENTAL | ソースコード管理番号(チェンジセットの変更回数など) |
VERSION.RELEASE | ユーザーに表示するバージョン番号 |
VERSION.SDK | 非推奨 SDK_INT利用のこと。 |
VERSION.SDK_INT | フレームワークのバージョン情報 |
Build.UNKNOWNは不明な場合を定義しています。大抵、”unknown”など不明を示す文字列が入っています。
この場合は、ほかのビルド情報に格納されている情報が”unknown”と一致していれば不明または未提供の情報と判断できます。
取得できる情報は、Androidのバージョンによって異なっており、最新のAndroid2.2をベースに考えるとAndroid 1.6では、
- ブートローダーのバージョン: Build.BOOTLOADER
- CPU第2命令セット: Build.CPU_ABI2
- ハードウェア情報: Build.HARDWARE
- ラジオ(無線)ファームウェアバージョン: Build.RADIO
- 情報不明時の識別子: Build.UNKNOWN
が取得できません。
以下、サンプルコードと主な開発環境(NexusOne、JN-DK01、エミュレータ)で取得できるBuild情報です。
サンプルコード
Log.d("build","BOARD:" + Build.BOARD); Log.d("build","BOOTLOADER:" + Build.BOOTLOADER); //Android 1.6未対応 Log.d("build","BRAND:" + Build.BRAND); Log.d("build","CPU_ABI:" + Build.CPU_ABI); Log.d("build","CPU_ABI2:" + Build.CPU_ABI2); //Android 1.6未対応 Log.d("build","DEVICE:" + Build.DEVICE); Log.d("build","DISPLAY:" + Build.DISPLAY); Log.d("build","FINGERPRINT:" + Build.FINGERPRINT); Log.d("build","HARDWARE:" + Build.HARDWARE); //Android 1.6未対応 Log.d("build","HOST:" + Build.HOST); Log.d("build","ID:" + Build.ID); Log.d("build","MANUFACTURER:" + Build.MANUFACTURER); Log.d("build","MODEL:" + Build.MODEL); Log.d("build","PRODUCT:" + Build.PRODUCT); Log.d("build","RADIO:" + Build.RADIO); //Android 1.6未対応 Log.d("build","TAGS:" + Build.TAGS); Log.d("build","TIME:" + Build.TIME); Log.d("build","TYPE:" + Build.TYPE); Log.d("build","UNKNOWN:" + Build.UNKNOWN); //Android 1.6未対応 Log.d("build","USER:" + Build.USER); Log.d("build","VERSION.CODENAME:" + Build.VERSION.CODENAME); Log.d("build","VERSION.INCREMENTAL:" + Build.VERSION.INCREMENTAL); Log.d("build","VERSION.RELEASE:" + Build.VERSION.RELEASE); Log.d("build","VERSION.SDK:" + Build.VERSION.SDK); Log.d("build","VERSION.SDK_INT:" + Build.VERSION.SDK_INT);
NexusOne
Googleの開発機NexusOne(Android2.2)のビルド情報です
09-28 01:51:33.190: DEBUG/build(3366): BOARD:mahimahi 09-28 01:51:33.190: DEBUG/build(3366): BOOTLOADER:0.33.0012 09-28 01:51:33.190: DEBUG/build(3366): BRAND:google 09-28 01:51:33.190: DEBUG/build(3366): CPU_ABI:armeabi-v7a 09-28 01:51:33.190: DEBUG/build(3366): CPU_ABI2:armeabi 09-28 01:51:33.190: DEBUG/build(3366): DEVICE:passion 09-28 01:51:33.190: DEBUG/build(3366): DISPLAY:FRF91 09-28 01:51:33.190: DEBUG/build(3366): FINGERPRINT:google/passion/passion/mahimahi:2.2/FRF91/43546:user/release-keys 09-28 01:51:33.190: DEBUG/build(3366): HARDWARE:mahimahi 09-28 01:51:33.190: DEBUG/build(3366): HOST:android-test-27.mtv.corp.google.com 09-28 01:51:33.190: DEBUG/build(3366): ID:FRF91 09-28 01:51:33.190: DEBUG/build(3366): MANUFACTURER:HTC 09-28 01:51:33.190: DEBUG/build(3366): MODEL:Nexus One 09-28 01:51:33.190: DEBUG/build(3366): PRODUCT:passion 09-28 01:51:33.190: DEBUG/build(3366): RADIO:unknown 09-28 01:51:33.190: DEBUG/build(3366): TAGS:release-keys 09-28 01:51:33.190: DEBUG/build(3366): TIME:1277930906000 09-28 01:51:33.190: DEBUG/build(3366): TYPE:user 09-28 01:51:33.200: DEBUG/build(3366): UNKNOWN:unknown 09-28 01:51:33.200: DEBUG/build(3366): USER:android-build 09-28 01:51:33.200: DEBUG/build(3366): VERSION.CODENAME:REL 09-28 01:51:33.200: DEBUG/build(3366): VERSION.INCREMENTAL:43546 09-28 01:51:33.200: DEBUG/build(3366): VERSION.RELEASE:2.2 09-28 01:51:33.200: DEBUG/build(3366): VERSION.SDK:8 09-28 01:51:33.200: DEBUG/build(3366): VERSION.SDK_INT:8
シャープ・JN-DK01
シャープの開発機JN-DK01のビルド情報です。Android1.6のため、無線ファームウェア番号などには未対応です。
09-28 02:14:27.067: DEBUG/build(2103): BOARD:JNDK01 09-28 02:14:27.067: DEBUG/build(2103): BRAND:SHARP 09-28 02:14:27.067: DEBUG/build(2103): CPU_ABI:armeabi 09-28 02:14:27.067: DEBUG/build(2103): DEVICE:JNDK01 09-28 02:14:27.067: DEBUG/build(2103): DISPLAY:JNDK01-userdebug 1.6 S6196 01.01.00 test-keys 09-28 02:14:27.067: DEBUG/build(2103): FINGERPRINT:SHARP/JNDK01/JNDK01/JNDK01:1.6/S6196/01.01.00:userdebug/test-keys 09-28 02:14:27.067: DEBUG/build(2103): HOST:TG572802 09-28 02:14:27.067: DEBUG/build(2103): ID:S6196 09-28 02:14:27.067: DEBUG/build(2103): MANUFACTURER:SHARP 09-28 02:14:27.067: DEBUG/build(2103): MODEL:JN-DK01 09-28 02:14:27.067: DEBUG/build(2103): PRODUCT:JNDK01 09-28 02:14:27.067: DEBUG/build(2103): TAGS:test-keys 09-28 02:14:27.067: DEBUG/build(2103): TIME:1278051843000 09-28 02:14:27.067: DEBUG/build(2103): TYPE:userdebug 09-28 02:14:27.067: DEBUG/build(2103): USER:nbproj 09-28 02:14:27.067: DEBUG/build(2103): VERSION.CODENAME:REL 09-28 02:14:27.067: DEBUG/build(2103): VERSION.INCREMENTAL:01.01.00 09-28 02:14:27.067: DEBUG/build(2103): VERSION.RELEASE:1.6 09-28 02:14:27.067: DEBUG/build(2103): VERSION.SDK:4 09-28 02:14:27.067: DEBUG/build(2103): VERSION.SDK_INT:4
Android SDK 標準シミュレータ(API Levele.8)
ゴールドフィッシュのビルド情報です。
09-27 16:59:32.143: DEBUG/build(325): BOARD:unknown 09-27 16:59:32.163: DEBUG/build(325): BOOTLOADER:unknown 09-27 16:59:32.163: DEBUG/build(325): BRAND:generic 09-27 16:59:32.163: DEBUG/build(325): CPU_ABI:armeabi 09-27 16:59:32.173: DEBUG/build(325): CPU_ABI2:unknown 09-27 16:59:32.203: DEBUG/build(325): DEVICE:generic 09-27 16:59:32.203: DEBUG/build(325): DISPLAY:sdk-eng 2.2 FRF91 43546 test-keys 09-27 16:59:32.203: DEBUG/build(325): FINGERPRINT:generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys 09-27 16:59:32.203: DEBUG/build(325): HARDWARE:goldfish 09-27 16:59:32.213: DEBUG/build(325): HOST:android-test-25.mtv.corp.google.com 09-27 16:59:32.213: DEBUG/build(325): ID:FRF91 09-27 16:59:32.213: DEBUG/build(325): MANUFACTURER:unknown 09-27 16:59:32.213: DEBUG/build(325): MODEL:sdk 09-27 16:59:32.213: DEBUG/build(325): PRODUCT:sdk 09-27 16:59:32.233: DEBUG/build(325): RADIO:unknown 09-27 16:59:32.233: DEBUG/build(325): TAGS:test-keys 09-27 16:59:32.233: DEBUG/build(325): TIME:1277931480000 09-27 16:59:32.243: DEBUG/build(325): TYPE:eng 09-27 16:59:32.243: DEBUG/build(325): UNKNOWN:unknown 09-27 16:59:32.273: DEBUG/build(325): USER:android-build 09-27 16:59:32.273: DEBUG/build(325): VERSION.CODENAME:REL 09-27 16:59:32.283: DEBUG/build(325): VERSION.INCREMENTAL:43546 09-27 16:59:32.283: DEBUG/build(325): VERSION.RELEASE:2.2 09-27 16:59:32.303: DEBUG/build(325): VERSION.SDK:8 09-27 16:59:32.303: DEBUG/build(325): VERSION.SDK_INT:8