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

एंड्रॉइड में डिवाइस आईडी कैसे प्राप्त करें?

एंड्रॉइड में डिवाइस आईडी प्राप्त करने का पूरा गाइड

यह ट्यूटोरियल आपको एंड्रॉइड ऐप में डिवाइस की यूनिक आईडी (IMEI/MEID) प्राप्त करना सिखाता है। ध्यान दें कि एंड्रॉइड 10 (API 29) से Google ने डिवाइस आईडी एक्सेस पर प्रतिबंध लगा दिए हैं, इसलिए आधुनिक ऐप्स को अन्य पहचानकर्ताओं का उपयोग करना चाहिए।

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

Android Studio खोलें, File → New Project चुनें और आवश्यक विवरण भरकर नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फ़ाइल में UI जोड़ें (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

यहां एक TextView लिया गया है जो डिवाइस आईडी प्रदर्शित करेगा।

चरण 3: MainActivity में कोड जोड़ें (java/MainActivity.java)

package com.example.myapplication;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import static android.Manifest.permission.READ_PHONE_NUMBERS;
import static android.Manifest.permission.READ_PHONE_STATE;
import static android.Manifest.permission.READ_SMS;

public class MainActivity extends AppCompatActivity {
    private static final int PERMISSION_REQUEST_CODE = 100;
    TextView textView;
    TelephonyManager telephonyManager;

    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);
        telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

        // रनटाइम परमिशन जांचें
        if (ActivityCompat.checkSelfPermission(this, READ_SMS) != PackageManager.PERMISSION_GRANTED &&
            ActivityCompat.checkSelfPermission(this, READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED &&
            ActivityCompat.checkSelfPermission(this, READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            
            ActivityCompat.requestPermissions(this, 
                new String[]{READ_SMS, READ_PHONE_NUMBERS, READ_PHONE_STATE}, 
                PERMISSION_REQUEST_CODE);
        } else {
            // परमिशन पहले से है, डिवाइस आईडी प्राप्त करें
            String deviceId = getDeviceIdSafely();
            textView.setText(deviceId);
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.P)
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) == PackageManager.PERMISSION_GRANTED ||
                ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_NUMBERS) == PackageManager.PERMISSION_GRANTED ||
                ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
                String deviceId = getDeviceIdSafely();
                textView.setText(deviceId);
            } else {
                textView.setText("परमिशन अस्वीकृत");
            }
        }
    }

    // सुरक्षित तरीके से डिवाइस आईडी प्राप्त करने की विधि
    private String getDeviceIdSafely() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            // एंड्रॉइड 10+ के लिए getDeviceId() डिप्रिकेटेड है
            return "एंड्रॉइड 10+ में डिवाइस आईडी एक्सेस प्रतिबंधित";
        } else {
            return telephonyManager.getDeviceId();
        }
    }
}

चरण 4: AndroidManifest.xml में परमिशन जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.myapplication">
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <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>

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

  • एंड्रॉइड 6.0 (API 23)+ पर रनटाइम परमिशन अनिवार्य है
  • एंड्रॉइड 10 (API 29)+ पर getDeviceId() डिप्रिकेटेड है और SecurityException फेंक सकता है
  • आधुनिक ऐप्स के लिए Settings.Secure.ANDROID_ID या Advertising ID का उपयोग करें
  • READ_SMS परमिशन की आवश्यकता नहीं है डिवाइस आईडी के लिए, इसे हटाया जा सकता है

ऐप चलाएं

अपने एंड्रॉइड डिवाइस को कंप्यूटर से कनेक्ट करें, Android Studio में Run आइकन पर क्लिक करें और अपना डिवाइस चुनें। ऐप लॉन्च होगा और डिवाइस आईडी दिखाएगा (या प्रतिबंध संदेश)।

  1. एंड्रॉइड में डिवाइस ID कैसे प्राप्त करें और स्टोर करें? एंड्रॉइड में डिवाइस ID कैसे प्राप्त करें और स्टोर करें?

    एंड्रॉइड में डिवाइस ID (Android ID) प्राप्त करना और स्टोर करना एंड्रॉइड प्रत्येक डिवाइस के लिए एक यूनिक 64-बिट हेक्साडेसिमल स्ट्रिंग जेनरेट करता है जिसे **Android ID** (SSAID) कहते हैं। यह डिवाइस की पहली बूट पर बनता है और फैक्ट्री रीसेट तक समान रहता है। ध्यान दें: Android 8.0 (API 26) से प्रत्येक ऐप

  1. एंड्रॉइड में प्रोग्रामेटिक रूप से डिवाइस का IMEI/ESN नंबर कैसे प्राप्त करें? एंड्रॉइड में प्रोग्रामेटिक रूप से डिवाइस का IMEI/ESN नंबर कैसे प्राप्त करें?

    READ_PHONE_STATE परमिशन के साथ IMEI नंबर प्राप्त करें यह उदाहरण दर्शाता है कि TelephonyManager का उपयोग करके डिवाइस का IMEI नंबर कैसे प्राप्त करें और रनटाइम परमिशन कैसे संभालें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में बटन और TextView res/layout/acti

  1. Android डिवाइस का प्राइमरी ईमेल एड्रेस कैसे प्राप्त करें? Android डिवाइस का प्राइमरी ईमेल एड्रेस कैसे प्राप्त करें?

    परिचय यह ट्यूटोरियल दिखाता है कि Android डिवाइस पर कॉन्फ़िगर किए गए अकाउंट्स में से प्राइमरी ईमेल एड्रेस कैसे प्राप्त करें। हम AccountManager और GET_ACCOUNTS परमिशन का उपयोग करेंगे। ⚠️ महत्वपूर्ण चेतावनी नोट: यह प्रोग्राम केवल रूटेड डिवाइस पर ही काम करेगा। आधुनिक Android वर्जन (Android 6.0+) में `G