Giới thiệu
Hướng dẫn này trình bày cách lấy Build ID (mã định danh bản dựng) của hệ điều hành Android trên thiết bị. Build ID thay đổi với mỗi bản cập nhật hệ thống.
Các bước thực hiện
Bước 1: Tạo dự án mới
Tạo dự án mới trong Android Studio: File → New Project.
Bước 2: Layout activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:textSize="30sp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Bước 3: MainActivity.java
package com.example.myapplication;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_PHONE_STATE}, 101);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 101) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
== PackageManager.PERMISSION_GRANTED) {
textView.setText(Build.ID);
}
}
}
}
@Override
protected void onResume() {
super.onResume();
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
== PackageManager.PERMISSION_GRANTED) {
textView.setText(Build.ID);
}
}
}
Bước 4: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.myapplication">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<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>
Kết quả và ý nghĩa
Chạy ứng dụng. Kết quả ví dụ: OPM1.171019.011, QP1A.190711.020, RP1A.200720.009.
Phân biệt các thuộc tính phiên bản quan trọng
| Thuộc tính | Mô tả | Ví dụ |
|---|---|---|
| Build.ID | Mã bản dựng (build ID) - thay đổi mỗi OTA update | RP1A.200720.009 |
| Build.VERSION.RELEASE | Phiên bản Android marketing | 11, 12, 13, 14 |
| Build.VERSION.SDK_INT | API Level (số nguyên) | 30, 31, 32, 33, 34 |
| Build.VERSION.INCREMENTAL | Số build nội bộ (thường trùng ID) | 7849472 |
Build.ID hữu ích để xác chính xác bản firmware đang chạy, hỗ trợ debug lỗi đặc thù phiên bản, kiểm tra bản vá bảo mật.