Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách lấy Build ID phiên bản Android bằng lập trình

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ínhMô tảVí dụ
Build.IDMã bản dựng (build ID) - thay đổi mỗi OTA updateRP1A.200720.009
Build.VERSION.RELEASEPhiên bản Android marketing11, 12, 13, 14
Build.VERSION.SDK_INTAPI Level (số nguyên)30, 31, 32, 33, 34
Build.VERSION.INCREMENTALSố 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.