কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড ডিভাইসের সিরিয়াল নম্বর বের করার পদ্ধতি

অ্যান্ড্রয়েড ডিভাইসের সিরিয়াল নম্বর এবং ডিভাইস ইনফো পাওয়া

এই উদাহরণটি দেখায় কীভাবে `Build.SERIAL` এবং `TelephonyManager` ব্যবহার করে ডিভাইসের সিরিয়াল নম্বর এবং অন্যান্য তথ্য বের করা যায়। দ্রষ্টব্য: Android 10 (API 29) থেকে গোপনীয়তা নীতির কারণে সিরিয়াল নম্বর পাওয়া সীমাবদ্ধ।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project থেকে প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML (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:onClick="showDeviceInfo"
        android:text="Get Serial Number"
        android:layout_centerInParent="true" />
    
    <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" />
</RelativeLayout>

ধাপ ৩: 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.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    public static final int REQUEST_CODE_PHONE_STATE_READ = 100;
    private int checkedPermission = PackageManager.PERMISSION_DENIED;
    TelephonyManager manager;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        textView = findViewById(R.id.textView);
        
        // রানটাইম পারমিশন চেক (Android 6.0+)
        checkedPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkedPermission != PackageManager.PERMISSION_GRANTED) {
            requestPermission();
        } else {
            checkedPermission = PackageManager.PERMISSION_GRANTED;
        }
    }

    private void requestPermission() {
        Toast.makeText(this, "Requesting permission", Toast.LENGTH_SHORT).show();
        requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CODE_PHONE_STATE_READ);
    }

    public void showDeviceInfo(View v) {
        manager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
        StringBuilder stringBuilder = new StringBuilder();
        
        // Build.SERIAL (Android 9 পর্যন্ত কাজ করে)
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
            stringBuilder.append("SERIAL: ").append(Build.SERIAL).append("\n");
        } else {
            stringBuilder.append("SERIAL: Restricted (Android 10+)\n");
        }
        
        // অন্যান্য ডিভাইস ইনফো (পারমিশন ছাড়াও কাজ করে)
        stringBuilder.append("MODEL: ").append(Build.MODEL).append("\n");
        stringBuilder.append("BRAND: ").append(Build.BRAND).append("\n");
        stringBuilder.append("MANUFACTURER: ").append(Build.MANUFACTURER).append("\n");
        stringBuilder.append("DEVICE: ").append(Build.DEVICE).append("\n");
        stringBuilder.append("API LEVEL: ").append(Build.VERSION.SDK_INT).append("\n");
        stringBuilder.append("ANDROID VERSION: ").append(Build.VERSION.RELEASE).append("\n");
        
        // IMEI/MEID (READ_PHONE_STATE পারমিশন দরকার)
        if (checkedPermission == PackageManager.PERMISSION_GRANTED && manager != null) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                stringBuilder.append("IMEI: ").append(manager.getImei()).append("\n");
            } else {
                stringBuilder.append("DEVICE ID: ").append(manager.getDeviceId()).append("\n");
            }
        } else {
            stringBuilder.append("IMEI: Permission required\n");
        }
        
        textView.setText(stringBuilder.toString());
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == REQUEST_CODE_PHONE_STATE_READ) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                checkedPermission = PackageManager.PERMISSION_GRANTED;
                Toast.makeText(this, "Permission granted", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

গুরুত্বপূর্ণ পরিবর্তন (Android 10+)

  • Build.SERIAL: Android 10 (API 29) থেকে সাধারণ অ্যাপের জন্য `Build.UNKNOWN` রিটার্ন করে
  • IMEI/MEID: `READ_PRIVILEGED_PHONE_STATE` পারমিশন দরকার (সিস্টেম অ্যাপের জন্য)
  • বিকল্প: `Settings.Secure.ANDROID_ID` ব্যবহার করুন যুনিক আইডি পাওয়ার জন্য

Android ID পাওয়ার পদ্ধতি (পারমিশন ছাড়া)

String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
// নোট: ফ্যাক্টরি রিসেটে এটি পরিবর্তন হয়ে যেতে পারে

ধাপ ৪: 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" />
    
    <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>

অ্যাপ্লিকেশন টেস্ট করুন

অ্যাপ রান করুন, "Get Serial Number" বাটনে ক্লিক করুন। পারমিশন দেয়া থাকলে ডিভাইসের সিরিয়াল নম্বর, মডেল, ব্র্যান্ড, IMEI ইত্যাদি দেখাবে।

  1. আপনার ফোন নম্বর খুঁজে বের করুন Android এবং iOS-এ – দ্রুত এবং সহজ ধাপাবলী

  2. অ্যান্ড্রয়েডে আপনার ফোন নম্বর দ্রুত খুঁজে বের করুন - ধাপে ধাপে গাইড

  3. আপনার iPhone সিরিয়াল নাম্বার খুঁজে বের করুন: ৪টি প্রুভেন মেথড

  4. Google Find My Device দিয়ে হারানো অ্যান্ড্রয়েড ফোন দ্রুত খুঁজুন