Androidアプリケーション内から、システム設定->タブレットについて->ビルド番号に表示されるホスティングデバイスのビルド番号をプログラムで取得して、 Java Androidアプリケーション?
現在、「Android.os.Build」を使用しています。
このコードを確認してください。
Build.FINGERPRINT
には、デバイスのBuild Number
が表示されます。
String mString = "";
mString.concat("VERSION.RELEASE {" + Build.VERSION.RELEASE + "}");
mString.concat("\nVERSION.INCREMENTAL {" + Build.VERSION.INCREMENTAL + "}");
mString.concat("\nVERSION.SDK {" + Build.VERSION.SDK + "}");
mString.concat("\nBOARD {" + Build.BOARD + "}");
mString.concat("\nBRAND {" + Build.BRAND + "}");
mString.concat("\nDEVICE {" + Build.DEVICE + "}");
mString.concat("\nFINGERPRINT {" + Build.FINGERPRINT + "}");
mString.concat("\nHOST {" + Build.Host + "}");
mString.concat("\nID {" + Build.ID + "}");
((TextView) findViewById(R.id.textView1)).setText(mString);
マイデバイスビルド番号:
FINGERPRINT
上記のコードで返す
設定の「デバイスについて」に示されているビルド番号の値のみを取得するには、次の静的メソッドを使用できます。
/**
* This method returns Build Number of the device from the OS Build fingerprint
* @return osBuildNumber - human entered name of the device
*/
public static String getOSBuildNumber() {
String osBuildNumber = Build.FINGERPRINT; //"google/shamu/shamu:5.1.1/LMY48Y/2364368:user/release-keys”
final String forwardSlash = "/";
String osReleaseVersion = Build.VERSION.RELEASE + forwardSlash;
try {
osBuildNumber = osBuildNumber.substring(osBuildNumber.indexOf(osReleaseVersion)); //"5.1.1/LMY48Y/2364368:user/release-keys”
osBuildNumber = osBuildNumber.replace(osReleaseVersion, ""); //"LMY48Y/2364368:user/release-keys”
osBuildNumber = osBuildNumber.substring(0, osBuildNumber.indexOf(forwardSlash)); //"LMY48Y"
} catch (Exception e) {
Log.e("getOSBuildNumber", "Exception while parsing - " + e.getMessage());
}
return osBuildNumber;
}
これにより、ビルド番号の正確な値が返されます。 Android SDKはこれを行うことを控えていることに注意してください。BUILDクラスの次のスニペットを確認してください。
/** A string that uniquely identifies this build. Do not attempt to parse this value. */
public static final String FINGERPRINT = deriveFingerprint();
/**
* Some devices split the fingerprint components between multiple
* partitions, so we might derive the fingerprint at runtime.
*/
private static String deriveFingerprint() {
String finger = SystemProperties.get("ro.build.fingerprint");
if (TextUtils.isEmpty(finger)) {
finger = getString("ro.product.brand") + '/' +
getString("ro.product.name") + '/' +
getString("ro.product.device") + ':' +
getString("ro.build.version.release") + '/' +
getString("ro.build.id") + '/' +
getString("ro.build.version.incremental") + ':' +
getString("ro.build.type") + '/' +
getString("ro.build.tags");
}
return finger;
}
上記のメソッドは、「deriveFingerprint()」メソッドで提供されるデータをリバースエンジニアリングするだけです。
この値を取得するには、 Build.DISPLAY を使用します。これはVerizonNote 2の例です(SCH-I605 on Android 4.4.2):KOT49H.I605VRUFND7
必要なもの:API3以降。
私はそれがあなたが望むのと同じ値を返すことを願っています。
String build_number = Build.FINGERPRINT;
System.out.println("Build Number" + build_number);
電話の設定に表示されているビルド番号を取得するためにString Build_Number = Build.DISPLAY;
を使用しました
Log.i("TAG", "SERIAL: " + Build.SERIAL);
Log.i("TAG","MODEL: " + Build.MODEL);
Log.i("TAG","ID: " + Build.ID);
Log.i("TAG","Manufacture: " + Build.MANUFACTURER);
Log.i("TAG","brand: " + Build.BRAND);
Log.i("TAG","type: " + Build.TYPE);
Log.i("TAG","user: " + Build.USER);
Log.i("TAG","BASE: " + Build.VERSION_CODES.BASE);
Log.i("TAG","INCREMENTAL " + Build.VERSION.INCREMENTAL);
Log.i("TAG","SDK " + Build.VERSION.SDK);
Log.i("TAG","BOARD: " + Build.BOARD);
Log.i("TAG","BRAND " + Build.BRAND);
Log.i("TAG","Host " + Build.Host);
Log.i("TAG","FINGERPRINT: "+Build.FINGERPRINT);
Log.i("TAG","Version Code: " + Build.VERSION.RELEASE);
ほらそれはうまくいくでしょう。
ビルド番号にBuild.DISPLAYを使用する