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

Android डिवाइस का सीरियल नंबर कैसे प्राप्त करें?

Android डिवाइस का सीरियल नंबर और डिवाइस जानकारी प्राप्त करना

यह उदाहरण दर्शाता है कि Android डिवाइस का सीरियल नंबर (`Build.SERIAL`) और टेलीफोनी जानकारी कैसे प्राप्त करें, जिसमें रनटाइम परमिशन हैंडलिंग शामिल है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:onClick="showDeviceInfo"
        android:text="सीरियल नंबर प्राप्त करें"/>

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/button"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp"
        android:textSize="16sp"/>

</RelativeLayout>

चरण 3: MainActivity (src/MainActivity.java)

import android.Manifest;
import android.app.AlertDialog;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CODE_PHONE_STATE = 100;
    private int permissionStatus = PackageManager.PERMISSION_DENIED;
    private TelephonyManager telephonyManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // परमिशन जांचें (Android 6.0+ के लिए)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            permissionStatus = ContextCompat.checkSelfPermission(this,
                Manifest.permission.READ_PHONE_STATE);
            
            if (permissionStatus != PackageManager.PERMISSION_GRANTED) {
                requestPermission();
            } else {
                permissionStatus = PackageManager.PERMISSION_GRANTED;
            }
        } else {
            // Android 6.0 से नीचे - इंस्टॉल टाइम परमिशन
            permissionStatus = PackageManager.PERMISSION_GRANTED;
        }
    }

    private void requestPermission() {
        Toast.makeText(this, "फोन स्टेट परमिशन मांगी जा रही है", Toast.LENGTH_SHORT).show();
        requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE},
            REQUEST_CODE_PHONE_STATE);
    }

    public void showDeviceInfo(View v) {
        telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        StringBuilder info = new StringBuilder();

        if (permissionStatus == PackageManager.PERMISSION_GRANTED) {
            builder.setTitle("डिवाइस जानकारी");
            
            // Build.SERIAL - डिवाइस सीरियल नंबर (API 26+ पर प्रतिबंधित)
            info.append("सीरियल: ").append(Build.SERIAL).append("\n");
            
            // अतिरिक्त जानकारी (परमिशन के साथ)
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    // API 26+ के लिए - getImei() के लिए READ_PRIVILEGED_PHONE_STATE चाहिए
                    info.append("IMEI: परमिशन आवश्यक\n");
                } else {
                    info.append("IMEI: ").append(telephonyManager.getDeviceId()).append("\n");
                }
                
                info.append("नेटवर्क ऑपरेटर: ").append(telephonyManager.getNetworkOperatorName()).append("\n");
                info.append("सिम ऑपरेटर: ").append(telephonyManager.getSimOperatorName()).append("\n");
                info.append("फोन टाइप: ").append(getPhoneTypeName(telephonyManager.getPhoneType())).append("\n");
                
            } catch (SecurityException e) {
                info.append("कुछ जानकारी के लिए अतिरिक्त परमिशन चाहिए\n");
            }
        } else {
            builder.setTitle("परमिशन अस्वीकृत");
            info.append("डिवाइस जानकारी एक्सेस नहीं कर सकते!");
        }

        builder.setMessage(info.toString());
        builder.setPositiveButton("OK", null);
        builder.show();
    }

    private String getPhoneTypeName(int phoneType) {
        switch (phoneType) {
            case TelephonyManager.PHONE_TYPE_GSM: return "GSM";
            case TelephonyManager.PHONE_TYPE_CDMA: return "CDMA";
            case TelephonyManager.PHONE_TYPE_SIP: return "SIP";
            case TelephonyManager.PHONE_TYPE_NONE: return "कोई नहीं";
            default: return "अज्ञात";
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        
        if (requestCode == REQUEST_CODE_PHONE_STATE) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                permissionStatus = PackageManager.PERMISSION_GRANTED;
                Toast.makeText(this, "परमिशन मिल गई", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "परमिशन अस्वीकृत - सीमित जानकारी", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

महत्वपूर्ण परमिशन नोट्स

API लेवल Build.SERIAL IMEI/डिवाइस ID
API < 26 उपलब्ध (READ_PHONE_STATE) उपलब्ध (READ_PHONE_STATE)
API 26-28 "UNKNOWN" लौटाता है READ_PRIVILEGED_PHONE_STATE चाहिए
API 29+ "UNKNOWN" लौटाता है सिस्टम ऐप्स के लिए ही उपलब्ध
⚠ गोपनीयता चेतावनी: Android 10 (API 29) से, गैर-रिसेटेबल डिवाइस आइडेंटिफायर्स (IMEI, सीरियल) सामान्य ऐप्स के लिए प्रतिबंधित हैं। Build.SERIAL हमेशा "UNKNOWN" लौटाता है। विकल्प के रूप में Settings.Secure.ANDROID_ID या Advertising ID उपयोग करें।

चरण 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <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>

ऐप चलाएं

ऐप लॉन्च करें, परमिशन दें, फिर बटन दबाकर डिवाइस जानकारी वाला डायलॉग देखें।

Android डिवाइस का सीरियल नंबर कैसे प्राप्त करें?

  1. एंड्रॉइड पर अपना फोन नंबर जल्दी खोजें - चरण-दर-चरण गाइड एंड्रॉइड पर अपना फोन नंबर जल्दी खोजें - चरण-दर-चरण गाइड

    यदि आपने हाल ही में एक नया फोन खरीदा है, या एक नया सिम कार्ड मिला है, तो आपको शायद अपना फोन नंबर खोजने में मदद की आवश्यकता है। आप निश्चित रूप से घबराहट में नहीं पड़ना चाहते जब आपका दोस्त या नियोक्ता आपसे आपका फोन नंबर मांगता है। एंड्रॉइड पर अपना खुद का फोन नंबर ढूंढना उतना मुश्किल नहीं है जितना यह

  1. अपने iPhone का सीरियल नंबर कैसे ढूंढें: 4 सिद्ध तरीके अपने iPhone का सीरियल नंबर कैसे ढूंढें: 4 सिद्ध तरीके

    क्या आप जानते हैं कि iPhone सीरियल नंबर खोजने के 1 नहीं, 2 नहीं बल्कि 4 अद्वितीय तरीके हैं? हैरान, है ना? iPhone सीरियल नंबर ट्रैक करने के कुछ सबसे आम तरीके फोन की सेटिंग्स के माध्यम से हैं, या शायद बॉक्स के पीछे देखना। iPhone सीरियल नंबर आपके डिवाइस का एक विशिष्ट कोड है जिसका उपयोग अक्सर इसकी प्राम

  1. Google Find My Device से अपने खोए एंड्रॉइड फोन को तुरंत ढूंढें Google Find My Device से अपने खोए एंड्रॉइड फोन को तुरंत ढूंढें

    क्या आपने अपना एंड्रॉइड फोन कहीं छोड़ दिया और यह नहीं मिल रहा? चाहे आपने इसे ऑफिस में, घर पर, या होटल के कमरे में गलत जगह रख दिया हो, यह जानना डरावना है कि आपका फोन गुम हो गया है। लेकिन अपने गुम हुए डिवाइस को ट्रैक करने के कुछ तरीके हैं ताकि घबराहट शुरू होने से पहले आप इसे वापस पा सकें। अधिकांश एंड