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

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

এই উদাহরণটি দেখায় কিভাবে অ্যান্ড্রয়েড ব্যাকগ্রাউন্ড সার্ভিসে ভলিউম বাটন লিসেন করা যায়।

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

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

ধাপ ২: লেআউট XML ফাইল যোগ করুন

res/layout/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:orientation="vertical"
    android:padding="16sp"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:text="Increase and decrease Volume"
        android:textSize="24sp"
        android:textStyle="bold" />
</LinearLayout>

ধাপ ৩: MainActivity.java ফাইলে কোড যোগ করুন

src/MainActivity.java ফাইলে নিচের কোডটি যোগ করুন। ContentObserver ব্যবহার করে সিস্টেম ভলিউম পরিবর্তন পর্যবেক্ষণ করা হয়েছে।

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.database.ContentObserver;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
import java.util.Objects;

public class MainActivity extends AppCompatActivity {
    SettingsContentObserver settingsContentObserver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        settingsContentObserver = new SettingsContentObserver(this, new Handler());
        getApplicationContext().getContentResolver().registerContentObserver(
            android.provider.Settings.System.CONTENT_URI, true, settingsContentObserver);
    }

    public class SettingsContentObserver extends ContentObserver {
        int previousVolume;
        Context context;

        SettingsContentObserver(Context c, Handler handler) {
            super(handler);
            context = c;
            AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            previousVolume = Objects.requireNonNull(audio).getStreamVolume(AudioManager.STREAM_MUSIC);
        }

        @Override
        public boolean deliverSelfNotifications() {
            return super.deliverSelfNotifications();
        }

        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            int currentVolume = Objects.requireNonNull(audio).getStreamVolume(AudioManager.STREAM_MUSIC);
            int delta = previousVolume - currentVolume;
            if (delta > 0) {
                Toast.makeText(MainActivity.this, "Volume Decreased", Toast.LENGTH_SHORT).show();
                previousVolume = currentVolume;
            } else if (delta < 0) {
                Toast.makeText(MainActivity.this, "Volume Increased", Toast.LENGTH_SHORT).show();
                previousVolume = currentVolume;
            }
        }
    }

    @Override
    protected void onDestroy() {
        getApplicationContext().getContentResolver().unregisterContentObserver(settingsContentObserver);
        super.onDestroy();
    }
}

ধাপ ৪: AndroidManifest.xml ফাইল

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <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 আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ডিভাইসে ডিফল্ট স্ক্রিন দেখুন।

  1. অ্যান্ড্রয়েডে ব্যাকগ্রাউন্ড সার্ভিস সবসময় চালানোর পদ্ধতি

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

  3. অ্যান্ড্রয়েডে ভলিউম বাটন ব্লক করার পদ্ধতি

  4. অ্যান্ড্রয়েডে Gear VR Service ডিজেবল করুন: বেটার ব্যাটারি পারফরম্যান্সের জন্য কুইক গাইড