एंड्रॉइड में डिवाइस का API लेवल (SDK_INT) प्रोग्रामेटिकली प्राप्त करना
Build.VERSION.SDK_INT डिवाइस पर चल रहे एंड्रॉइड वर्ज़न का **API लेवल (इंटीजर)** लौटाता है (उदाहरण: 34 = Android 14)। यह रनटाइम पर वर्ज़न-स्पेसिफिक कोड चलाने के लिए उपयोगी है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio → File → New → New Project → "Empty Activity" → Finish।
चरण 2: Layout (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="24dp"
android:gravity="center">
<TextView
android:id="@+id/tvApiLevel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="API लेवल: -"
android:textSize="28sp"
android:textStyle="bold"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/tvVersionName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="वर्ज़न नाम: -"
android:textSize="18sp"
android:layout_marginBottom="24dp" />
<Button
android:id="@+id/btnCheckVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="API लेवल जांचें"
android:padding="12dp 24dp" />
</LinearLayout>
चरण 3: MainActivity.java — SDK_INT + वर्ज़न नाम मैपिंग
package com.example.apiversiondemo;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private TextView tvApiLevel, tvVersionName;
private Button btnCheckVersion;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvApiLevel = findViewById(R.id.tvApiLevel);
tvVersionName = findViewById(R.id.tvVersionName);
btnCheckVersion = findViewById(R.id.btnCheckVersion);
btnCheckVersion.setOnClickListener(v -> showApiInfo());
}
private void showApiInfo() {
int sdkInt = Build.VERSION.SDK_INT;
String versionName = getVersionName(sdkInt);
tvApiLevel.setText("API लेवल: " + sdkInt);
tvVersionName.setText("वर्ज़न: " + versionName);
// वर्ज़न-स्पेसिफिक कोड उदाहरण
if (sdkInt >= Build.VERSION_CODES.TIRAMISU) { // API 33+
// Android 13+ फीचर उपयोग करें
} else if (sdkInt >= Build.VERSION_CODES.S) { // API 31-32
// Android 12 फीचर
}
// ... आदि
}
// API लेवल → मार्केटिंग नाम मैपिंग
private String getVersionName(int apiLevel) {
return switch (apiLevel) {
case Build.VERSION_CODES.BASE -> "Android 1.0 (Base)";
case Build.VERSION_CODES.BASE_1_1 -> "Android 1.1";
case Build.VERSION_CODES.CUPCAKE -> "Android 1.5 (Cupcake)";
case Build.VERSION_CODES.DONUT -> "Android 1.6 (Donut)";
case Build.VERSION_CODES.ECLAIR -> "Android 2.0/2.1 (Eclair)";
case Build.VERSION_CODES.FROYO -> "Android 2.2 (Froyo)";
case Build.VERSION_CODES.GINGERBREAD -> "Android 2.3 (Gingerbread)";
case Build.VERSION_CODES.HONEYCOMB -> "Android 3.0 (Honeycomb)";
case Build.VERSION_CODES.ICE_CREAM_SANDWICH -> "Android 4.0 (Ice Cream Sandwich)";
case Build.VERSION_CODES.JELLY_BEAN -> "Android 4.1-4.3 (Jelly Bean)";
case Build.VERSION_CODES.KITKAT -> "Android 4.4 (KitKat)";
case Build.VERSION_CODES.LOLLIPOP -> "Android 5.0/5.1 (Lollipop)";
case Build.VERSION_CODES.M -> "Android 6.0 (Marshmallow)";
case Build.VERSION_CODES.N -> "Android 7.0 (Nougat)";
case Build.VERSION_CODES.O -> "Android 8.0 (Oreo)";
case Build.VERSION_CODES.P -> "Android 9.0 (Pie)";
case Build.VERSION_CODES.Q -> "Android 10.0 (Q)";
case Build.VERSION_CODES.R -> "Android 11.0 (R)";
case Build.VERSION_CODES.S -> "Android 12.0 (S)";
case Build.VERSION_CODES.TIRAMISU -> "Android 13.0 (Tiramisu)";
case Build.VERSION_CODES.UPSIDE_DOWN_CAKE -> "Android 14.0 (UpsideDownCake)";
case Build.VERSION_CODES.VANILLA_ICE_CREAM -> "Android 15.0 (VanillaIceCream)";
default -> "Android " + apiLevel + " (अज्ञात/भविष्य)";
};
}
}
चरण 4: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.apiversiondemo">
<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/Theme.ApiVersionDemo">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
चलाएं और टेस्ट करें
- ऐप खोलें → "API लेवल जांचें" दबाएं।
- स्क्रीन पर API लेवल (उदाहरण: 34) और वर्ज़न नाम (उदाहरण: "Android 14.0 (UpsideDownCake)") दिखेंगे।
🔑 Build.VERSION के उपयोगी फील्ड्स
| फील्ड | टाइप | विवरण | उदाहरण |
|---|---|---|---|
SDK_INT | int | API लेवल (कंपाइल-टाइम कांस्टेंट नहीं — रनटाइम पर डिवाइस का) | 34 |
RELEASE | String | यूज़र-विज़िबल वर्ज़न स्ट्रिंग | "14" |
CODENAME | String | डेवलपमेंट कोडनेम (रिलीज़ पर "REL") | "REL" |
INCREMENTAL | String | बिल्ड नंबर (उदाहरण: "1234567") | "1234567" |
BOARD, BRAND, DEVICE, MODEL, MANUFACTURER, PRODUCT | String | हार्डवेयर/बिल्ड जानकारी | "Pixel 8", "Google", आदि |
SECURITY_PATCH | String | सिक्योरिटी पैच लेवल (YYYY-MM-DD) | "2024-01-05" |
✅ वर्ज़न चेक के बेस्ट प्रैक्टिसेज
// ✅ सही: VERSION_CODES कांस्टेंट्स उपयोग करें (रीडेबल, मेंटेनेबल)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // API 33+
// फोटो पिकर, मीडिया परमिशन, आदि
}
// ❌ गलत: मैजिक नंबर्स
if (Build.VERSION.SDK_INT >= 33) { ... }
// ✅ सही: रेंज चेक
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S &&
Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { // API 31-32
// केवल Android 12 के लिए
}
// ✅ Kotlin में एक्सटेंशन प्रॉपर्टी
val isAtLeastT: Boolean
get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
📱 अन्य उपयोगी Build क्लासेस
Build.VERSION_CODES— सभी API लेवल कांस्टेंट्सBuild.VERSION— रनटाइम वर्ज़न इन्फोBuild.MODEL,Build.MANUFACTURER,Build.DEVICE— डिवाइस पहचानBuild.FINGERPRINT— यूनिक बिल्ड फिंगरप्रिंटBuild.getRadioVersion()(API 30+) — बेसबैंड वर्ज़न
सारांश
- ✅
Build.VERSION.SDK_INT→ डिवाइस का API लेवल (इंटीजर)। - ✅
Build.VERSION_CODES.NAMEकांस्टेंट्स से तुलना करें — मैजिक नंबर्स न लिखें। - ✅ वर्ज़न-स्पेसिफिक API उपयोग करने से पहले चेक करें।
- 🔄
Build.VERSION.RELEASE→ "14", "13" जैसा यूज़र-फेसिंग वर्ज़न। - 📦
BuildConfig.VERSION_CODE/VERSION_NAME→ **आपके ऐप** का वर्ज़न (डिवाइस का नहीं)।