Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีดึงหมายเลขเวอร์ชัน Android โดยโปรแกรม

ภาพรวม

บทความนี้แสดงวิธีดึงหมายเลข API Level (SDK INT) ของ Android ที่อุปกรณ์กำลังทำงานผ่าน Build.VERSION.SDK_INT ซึ่งเป็น Integer เหมาะสำหรับการตรวจสอบเวอร์ชันในโค้ด

โค้ดหลัก

textView.setText("" + Build.VERSION.SDK_INT);

Build.VERSION Fields สำคัญ

FieldTypeคำอธิบายตัวอย่าง (Android 14)
SDK_INTintAPI Level (ใช้ใน if/when)34
RELEASEStringเวอร์ชันที่ผู้ใช้เห็น"14"
CODENAMEStringรหัสภายใน (REL = Release)"REL"
INCREMENTALStringBuild Number ภายใน"1234567"
SECURITY_PATCHStringวันที่ Security Patch"2024-01-05"
BASE_OSStringBase OS สำหรับ OTA""

Android Version Codes (บางส่วน)

// ตรวจสอบเวอร์ชันแบบ Type-safe
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // API 33
    // Android 13+ features
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // API 34
    // Android 14+ features
}

การใช้งานจริง

  • Feature detection: if (SDK_INT >= 23) { requestPermissions... }
  • Conditional UI/Behavior ต่อเวอร์ชัน
  • Analytics: รายงาน API Level ของผู้ใช้
  • Compatibility: ปิด/เปิดฟีเจอร์ตามความรองรับ

Manifest

ต้องการ READ_PHONE_STATE ในตัวอย่างเดิม แต่จริงๆ Build.VERSION.SDK_INT ไม่ต้องการ Permission ใดๆ สามารถเข้าถึงได้ทุกที่ในแอป

โค้ดที่ปรับปรุงแล้ว (ไม่ต้องขอ Permission)

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = findViewById(R.id.text);
        textView.setText("API Level: " + Build.VERSION.SDK_INT 
            + "\nVersion: " + Build.VERSION.RELEASE
            + "\nSecurity Patch: " + Build.VERSION.SECURITY_PATCH);
    }
}

หมายเหตุ

ตัวอย่างเดิมขอ READ_PHONE_STATE ผิดวัตถุประสงค์ - Build.VERSION ไม่ได้อยู่ในกลุ่มข้อมูลที่ต้องการ Phone State Permission