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

অ্যান্ড্রয়েড অ্যাপে শেক ইভেন্ট কীভাবে সনাক্ত করবেন?

অ্যান্ড্রয়েডে শেক ইভেন্ট সনাক্ত করার পদ্ধতি

এই উদাহরণটি দেখায় কীভাবে আপনার অ্যান্ড্রয়েড অ্যাপে ডিভাইস হাতানো (shake) ইভেন্ট সনাক্ত করা যায়। আমরা এক্সিলারোমিটার সেন্সর ব্যবহার করে এই ফিচারটি বাস্তবায়ন করব।

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

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

ধাপ ২: লেআউট ফাইল সংশোধন করুন

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:padding="8dp"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:text="ফোনটি হাতিয়ে শেক ইভেন্ট সনাক্ত করুন"
        android:textSize="24sp"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

ধাপ ৩: MainActivity.java-এ লজিক যোগ করুন

src/MainActivity.java ফাইলে নিচের কোড যোগ করুন:

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Toast;
import java.util.Objects;

public class MainActivity extends AppCompatActivity {
    private SensorManager mSensorManager;
    private float mAccel;
    private float mAccelCurrent;
    private float mAccelLast;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        Objects.requireNonNull(mSensorManager).registerListener(mSensorListener, 
            mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
            SensorManager.SENSOR_DELAY_NORMAL);
        
        mAccel = 10f;
        mAccelCurrent = SensorManager.GRAVITY_EARTH;
        mAccelLast = SensorManager.GRAVITY_EARTH;
    }

    private final SensorEventListener mSensorListener = new SensorEventListener() {
        @Override
        public void onSensorChanged(SensorEvent event) {
            float x = event.values[0];
            float y = event.values[1];
            float z = event.values[2];
            
            mAccelLast = mAccelCurrent;
            mAccelCurrent = (float) Math.sqrt((double) (x * x + y * y + z * z));
            float delta = mAccelCurrent - mAccelLast;
            mAccel = mAccel * 0.9f + delta;
            
            if (mAccel > 12) {
                Toast.makeText(getApplicationContext(), "শেক ইভেন্ট সনাক্ত হয়েছে", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            // প্রয়োজন হলে একুরেসি পরিবর্তন হ্যান্ডল করুন
        }
    };

    @Override
    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(mSensorListener, 
            mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
            SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mSensorManager.unregisterListener(mSensorListener);
    }
}

ধাপ ৪: ম্যানিফেস্ট ফাইল কনফিগার করুন

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. Android-এ লং প্রেস (দীর্ঘ স্পর্শ) শনাক্ত করার পদ্ধতি

  2. অ্যান্ড্রয়েড অ্যাপে TextToSpeech তৈরি করার পদ্ধতি

  3. Facebook-এ Android অ্যাপ তৈরি করার পদ্ধতি

  4. Android-এ ৫ সেকেন্ড ব্যবহারকারীর নিষ্ক্রিয়তা শনাক্ত করা