Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में प्रोग्रामेटिकली API वर्ज़न (SDK लेवल) कैसे प्राप्त करें?

एंड्रॉइड में डिवाइस का 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>

चलाएं और टेस्ट करें

  1. ऐप खोलें → "API लेवल जांचें" दबाएं।
  2. स्क्रीन पर API लेवल (उदाहरण: 34) और वर्ज़न नाम (उदाहरण: "Android 14.0 (UpsideDownCake)") दिखेंगे।

🔑 Build.VERSION के उपयोगी फील्ड्स

फील्डटाइपविवरणउदाहरण
SDK_INTintAPI लेवल (कंपाइल-टाइम कांस्टेंट नहीं — रनटाइम पर डिवाइस का)34
RELEASEStringयूज़र-विज़िबल वर्ज़न स्ट्रिंग"14"
CODENAMEStringडेवलपमेंट कोडनेम (रिलीज़ पर "REL")"REL"
INCREMENTALStringबिल्ड नंबर (उदाहरण: "1234567")"1234567"
BOARD, BRAND, DEVICE, MODEL, MANUFACTURER, PRODUCTStringहार्डवेयर/बिल्ड जानकारी"Pixel 8", "Google", आदि
SECURITY_PATCHStringसिक्योरिटी पैच लेवल (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 → **आपके ऐप** का वर्ज़न (डिवाइस का नहीं)।
  1. प्रोग्रामेटिकली वर्तमान Android SDK वर्जन कैसे प्राप्त करें? प्रोग्रामेटिकली वर्तमान Android SDK वर्जन कैसे प्राप्त करें?

    Android में प्रोग्रामेटिकली SDK वर्जन जानना यह ट्यूटोरियल दिखाता है कि कैसे रनटाइम पर डिवाइस का API लेवल और Android वर्जन प्राप्त किया जाता है, जो वर्जन-स्पेसिफिक फीचर्स इम्प्लीमेंट करने के लिए जरूरी है। चरण 1: प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट में TextView res/l

  1. एंड्रॉइड में वर्तमान में चल रहे ऐप्स प्रोग्रामेटिकली कैसे खोजें एंड्रॉइड में वर्तमान में चल रहे ऐप्स प्रोग्रामेटिकली कैसे खोजें

    ActivityManager का उपयोग करके चल रहे टास्क्स/ऐप्स की सूची प्राप्त करना एंड्रॉइड में ActivityManager.getRunningTasks() और getRunningAppProcesses() का उपयोग करके चल रहे एप्लिकेशन की जानकारी प्राप्त की जा सकती है। नोट: एंड्रॉइड 5.0+ (API 21) में getRunningTasks() डिप्रिकेटेड है और केवल कॉलर के अपने टास

  1. Android ऐप को प्रोग्रामेटिकली कैसे बंद करें? Android ऐप को प्रोग्रामेटिकली कैसे बंद करें?

    यह उदाहरण दर्शाता है कि Android ऐप को बटन क्लिक पर प्रोग्रामेटिकली कैसे बंद किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android=https://schemas