एंड्रॉइड में सिम सीरियल नंबर (ICCID) प्राप्त करने का गाइड
यह ट्यूटोरियल दिखाता है कि एंड्रॉइड ऐप में TelephonyManager का उपयोग करके सिम कार्ड का सीरियल नंबर (ICCID) कैसे प्राप्त करें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें और प्रोजेक्ट विवरण भरें।
चरण 2: लेआउट फ़ाइल (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>
चरण 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 simSerial = getSimSerialSafely();
textView.setText(simSerial);
}
}
@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 simSerial = getSimSerialSafely();
textView.setText(simSerial);
} else {
textView.setText("परमिशन अस्वीकृत");
}
}
}
private String getSimSerialSafely() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// एंड्रॉइड 10+ पर getSimSerialNumber() के लिए विशेष परमिशन चाहिए
return "एंड्रॉइड 10+ में सिम सीरियल एक्सेस प्रतिबंधित";
} else {
return telephonyManager.getSimSerialNumber();
}
}
}
चरण 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>
महत्वपूर्ण जानकारी
- ICCID सिम कार्ड का यूनिक पहचानकर्ता होता है (आमतौर पर 19-20 अंक)
- एंड्रॉइड 10+ पर
READ_PRIVILEGED_PHONE_STATEपरमिशन चाहिए जो सिस्टम ऐप्स को ही मिलती है - READ_SMS परमिशन यहां अनावश्यक है
- डुअल सिम डिवाइस पर यह डिफ़ॉल्ट/सक्रिय सिम का नंबर लौटाता है
ऐप टेस्ट करें
डिवाइस कनेक्ट करें, Run पर क्लिक करें। सिम कार्ड होने पर ICCID दिखेगा, अन्यथा "null" या प्रतिबंध संदेश।