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

অ্যান্ড্রয়েডে হেডসেট প্লাগ করা আছে কিনা যাচাই করা

হেডসেট/হেডফোন ডিটেকশন: ব্রডকাস্ট রিসিভারের ব্যবহার

এই উদাহরণটি দেখাবে কীভাবে ব্রডকাস্ট রিসিভার ব্যবহার করে হেডসেট প্লাগ ইন বা আউট হওয়ার ঘটনা শোনা যায়। এটি মিউজিক অ্যাপ বা কলিং অ্যাপের জন্য অত্যন্ত গুরুত্বপূর্ণ।

পদক্ষেপ ১: প্রজেক্ট তৈরি করুন

Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।

পদক্ষেপ ২: লেআউট XML (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Detecting headphones plug In" />

</LinearLayout>

পদক্ষেপ ৩: MainActivity.java-তে ব্রডকাস্ট রিসিভার

import androidx.appcompat.app.AppCompatActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    BroadcastReceiver broadcastReceiver;
    boolean isHeadsetPlugged = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        broadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                
                if (Intent.ACTION_HEADSET_PLUG.equals(action)) {
                    int state = intent.getIntExtra("state", -1);
                    
                    if (state == 0) {
                        isHeadsetPlugged = false;
                        Toast.makeText(context, "Headset unplugged", Toast.LENGTH_SHORT).show();
                    } else if (state == 1) {
                        isHeadsetPlugged = true;
                        Toast.makeText(context, "Headset plugged in", Toast.LENGTH_SHORT).show();
                    }
                    
                    // মাইক্রোফোন উপস্থিতি যাচাই
                    int microphone = intent.getIntExtra("microphone", 0);
                    if (microphone == 1) {
                        Toast.makeText(context, "With microphone", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        };

        IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
        registerReceiver(broadcastReceiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (broadcastReceiver != null) {
            unregisterReceiver(broadcastReceiver);
        }
    }
}

পদক্ষেপ ৪: Manifest ফাইল

এই ব্রডকাস্ট রিসিভার ডাইনামিকভাবে রেজিস্টার করা হয়েছে, তাই ম্যানিফেস্টে কোনো ডিক্লেরেশন দরকার নেই।

গুরুত্বপূর্ণ নোটসমূহ

  • স্টিকি ব্রডকাস্ট: ACTION_HEADSET_PLUG একটি স্টিকি ব্রডকাস্ট, তাই রেজিস্টার করার সাথে সাথে বর্তমান স্টেট পাওয়া যায়
  • অতিরিক্ত তথ্য: "state" (০ বা ১), "microphone" (০ বা ১), "name" (ডিভাইসের নাম)
  • লাইফসাইকেল: onDestroy()-তে unregisterReceiver() কল করা আবশ্যক
  • API 31+: অ্যান্ড্রয়েড ১২ থেকে কিছু ব্রডকাস্ট রিসিভারের জন্য রানটাইম পারমিশন লাগতে পারে

ব্যবহারের পরিস্থিতি

  • মিউজিক প্লেয়ার: হেডফোন খুললে অটো পজ করুন
  • ভয়েস রেকর্ডার: এক্সternal মাইক্রোফোন ডিটেক্ট করুন
  • কলিং অ্যাপ: অডিও রাউটিং পরিবর্তন করুন
  1. Android ডিভাইসকে রেট্রো গেমিং কনসোলে রূপান্তর করার পদ্ধতি

  2. অ্যান্ড্রয়েড ডিভাইসকে একটি ওয়েব সার্ভারে রূপান্তর করুন

  3. অ্যান্ড্রয়েড ফোনকে WiFi এক্সটেন্ডার বানানোর পদ্ধতি

  4. আপনার অ্যান্ড্রয়েড ফোন রুট করা আছে কিনা যাচাই করার উপায়