ภาพรวม
บทความนี้แสดงวิธีดึงหมายเลข API Level (SDK INT) ของ Android ที่อุปกรณ์กำลังทำงานผ่าน Build.VERSION.SDK_INT ซึ่งเป็น Integer เหมาะสำหรับการตรวจสอบเวอร์ชันในโค้ด
โค้ดหลัก
textView.setText("" + Build.VERSION.SDK_INT);
Build.VERSION Fields สำคัญ
| Field | Type | คำอธิบาย | ตัวอย่าง (Android 14) |
|---|---|---|---|
| SDK_INT | int | API Level (ใช้ใน if/when) | 34 |
| RELEASE | String | เวอร์ชันที่ผู้ใช้เห็น | "14" |
| CODENAME | String | รหัสภายใน (REL = Release) | "REL" |
| INCREMENTAL | String | Build Number ภายใน | "1234567" |
| SECURITY_PATCH | String | วันที่ Security Patch | "2024-01-05" |
| BASE_OS | String | Base 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