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

অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি ডিভাইস সিকিউর আইডি (Android ID) কিভাবে পেতে হয়?


ওভারভিউ

এই উদাহরণটি দেখায় কিভাবে `Settings.Secure.ANDROID_ID` ব্যবহার করে ডিভাইসের ইউনিক সিকিউর আইডি প্রোগ্রামেটিক্যালি পাওয়া যায়।

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

Android Studio-তে যান: File → New Project এবং প্রজেক্ট তৈরির জন্য প্রয়োজনীয় সব তথ্য পূরণ করুন।

ধাপ ২: লেআউট XML-এ TextView যোগ করুন

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">
    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

উপরের কোডে ডিভাইস আইডি দেখানোর জন্য TextView ব্যবহার করা হয়েছে।

ধাপ ৩: MainActivity.java-তে কোড যোগ করুন

package com.example.myapplication;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.RequiresApi;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    
    @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);
        
        // READ_PHONE_STATE পারমিশন চেক (Android 6.0+ জন্য)
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) 
            != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, 
                new String[]{Manifest.permission.READ_PHONE_STATE}, 101);
        } else {
            showAndroidId();
        }
    }
    
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == 101) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                showAndroidId();
            }
        }
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) 
            == PackageManager.PERMISSION_GRANTED) {
            showAndroidId();
        }
    }
    
    private void showAndroidId() {
        String androidId = Settings.Secure.getString(
            getContentResolver(), 
            Settings.Secure.ANDROID_ID
        );
        textView.setText("" + androidId);
    }
}

গুরুত্বপূর্ণ নোট:

  • Settings.Secure.ANDROID_ID - ৬৪-বিট হেক্সাডেসিমেল স্ট্রিং (যেমন: "a1b2c3d4e5f6g7h8")
  • প্রতিটি ডিভাইসের জন্য یونিক (ফ্যাক্টরি রিসেট করলে পরিবর্তন হয়)
  • Android 8.0 (API 26) থেকে অ্যাপ-প্রতি ভিন্ন Android ID জেনারেট হয় (Scoped Storage)
  • READ_PHONE_STATE পারমিশন আপনার অ্যাপের `targetSdkVersion` 29 বা তার নিচে হলে প্রয়োজন
  • আধুনিক অ্যান্ড্রয়েডে ডিভাইস আইডেনটিফিকেশনের জন্য Advertising ID বা Instance ID ব্যবহার করা ভালো

ধাপ ৪: 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.INTERNET"/>
    <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-তে আপনার প্রজেক্টের activity ফাইল খুলুন এবং টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ডিভাইসে সিকিউর অ্যান্ড্রয়েড আইডি দেখুন।

অ্যান্ড্রয়েডে প্রোগ্রামেটিক্যালি ডিভাইস সিকিউর আইডি (Android ID) কিভাবে পেতে হয়?

  1. অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি স্ক্রিন DPI পাওয়ার পদ্ধতি

  2. অ্যান্ড্রয়েড ডিভাইসে প্রোগ্রাম্যাটিক্যালি WiFi অন/অফ করার পদ্ধতি

  3. অ্যান্ড্রয়েডে ডিভাইস আইডি (Device ID) পাওয়ার এবং সংরক্ষণ করার পদ্ধতি

  4. অ্যান্ড্রয়েডে প্রোগ্রাম্যাটিক্যালি ডিভাইসের IMEI/ESN নম্বর পাওয়ার পদ্ধতি