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

অ্যান্ড্রয়েড ডিভাইস কীভাবে কাঁপানো (Vibrate) যায়?

অ্যান্ড্রয়েডে ভাইব্রেশন সার্ভিস

অ্যান্ড্রয়েডে Vibrator সিস্টেম সার্ভিস ব্যবহার করে ডিভাইস কাঁপানো যায়। API 26 (Android 8.0/Oreo) থেকে VibrationEffect ক্লাস ব্যবহার করা উচিত।

উদাহরণ: ডিভাইস কাঁপানো

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

ধাপ ২: লেআউট XML (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/parent"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:gravity="center"
    android:background="#33FFFF00"
    android:orientation="vertical">
    <TextView
        android:id="@+id/text"
        android:textSize="18sp"
        android:text="Click here to vibrate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

ধাপ ৩: জাভা কোড (src/MainActivity.java)

package com.example.andy.myapplication;

import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;

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

        final LinearLayout parent = findViewById(R.id.parent);
        textView = findViewById(R.id.text);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                
                if (vibrator != null && vibrator.hasVibrator()) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                        // Android 8.0+ (API 26+)
                        vibrator.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
                    } else {
                        // পুরানো API
                        vibrator.vibrate(500);
                    }
                } else {
                    // ডিভাইসে ভাইব্রেটর নেই
                }
            }
        });
    }
}

ধাপ ৪: ম্যানিফেস্টে পারমিশন যোগ করুন (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.andy.myapplication">
    
    <uses-permission android:name="android.permission.VIBRATE" />
    
    <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"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

VibrationEffect প্যাটার্ন উদাহরণ

// একক কাঁপানো (500ms)
VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE);

// প্যাটার্ন কাঁপানো: {বিলম্ব, কাঁপানো, বিলম্ব, কাঁপানো...}
long[] pattern = {0, 300, 200, 300, 200, 300};
VibrationEffect.createWaveform(pattern, -1); // -1 = একবার, 0 = লুপ

// আম্প্লিটিউড কন্ট্রোল (API 29+)
VibrationEffect.createOneShot(500, 128); // 0-255 আম্প্লিটিউড

সেরা অনুশীলন

  • সর্বদা vibrator.hasVibrator() চেক করুন
  • -null চেক করুন getSystemService()-এর ফলাফলে
  • ব্যবহারকারীর সেটিংস尊重 করুন (Do Not Disturb মোড)
  • অতিরিক্ত ভাইব্রেশন এড়ানোর জন্য টাইমআউট ব্যবহার করুন
  1. এন্ড্রয়েড ডিভাইসে ফোন কল শনাক্ত করার পদ্ধতি

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

  3. অ্যান্ড্রয়েড অ্যাপে SurfaceView ট্রান্সপারেন্ট করবেন কীভাবে?

  4. PC ছাড়াই নিরাপদে আপনার Android ডিভাইস রুট করুন