অ্যান্ড্রয়েডে সিম কার্ডের সিরিয়াল নম্বর (ICCID) পাওয়ার পদ্ধতি
এই টিউটোরিয়ালে দেখানো হয়েছে কিভাবে একটি অ্যান্ড্রয়েড অ্যাপ থেকে ডিভাইসের ডিফল্ট সিম কার্ডের уникаল সিরিয়াল নম্বর (ICCID) প্রোগ্রামেটিকভাবে বের করা যায়। এটি TelephonyManager ক্লাসের getSimSerialNumber() মেথড ব্যবহার করে করা হয়। আধুনিক অ্যান্ড্রয়েড ভার্সনে এটি করার জন্য রানটাইম অনুমতি (Runtime Permission) আবশ্যক।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project সিলেক্ট করে একটি নতুন প্রজেক্ট তৈরি করুন।
ধাপ ২: লেয়াউট ডিজাইন করুন (res/layout/activity_main.xml)
সিম সিরিয়াল নম্বর প্রদর্শনের জন্য একটি TextView যুক্ত করুন।
<?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>
ধাপ ৩: জাভা কোড লিখুন (java/MainActivity.java)
MainActivity.java ফাইলে নিচের কোডটি ব্যবহার করুন। এখানে READ_PHONE_STATE, READ_SMS এবং READ_PHONE_NUMBERS অনুমতিগুলি চেক করা হয়েছে।
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.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.telephony.TelephonyManager;
import android.widget.TextView;
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) this.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 {
textView.setText("" + telephonyManager.getSimSerialNumber());
}
}
@RequiresApi(api = Build.VERSION_CODES.P)
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 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) {
return;
} else {
textView.setText("" + telephonyManager.getSimSerialNumber());
}
}
}
}
ধাপ ৪: ম্যানিফেস্টে অনুমতি যোগ করুন (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>
অ্যাপ্লিকেশনটি রান করুন
আসল ডিভাইস সংযুক্ত করে Android Studio-তে Run বাটনে ক্লিক করুন। ডিভাইসের স্ক্রিনে সিমের সিরিয়াল নম্বর (ICCID) প্রদর্শিত হবে।

মहত্বপূর্ণ টিপস
- ডুয়াল সিম ডিভাইসে
getSimSerialNumber()সাধারণত প্রথম স্লটের (Slot 1) সিমের তথ্য রিটার্ন করে। - Android 10+ এ এই মেথডটি কাজ করার জন্য
READ_PRIVILEGED_PHONE_STATEঅনুমতি বা ক্যারিয়ার প্রিভিলেজ দরকার হতে পারে। - সিম কার্ড না থাকলে বা অনুমতি না থাকলে এই মেথডটি
nullরিটার্ন করতে পারে।