Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android ऐप में शेक इवेंट का पता कैसे लगाएं?

Android में शेक इवेंट डिटेक्शन का पूरा गाइड

यह ट्यूटोरियल आपको दिखाएगा कि Android ऐप में एक्सेलेरोमीटर सेंसर का उपयोग करके शेक जेस्चर का पता कैसे लगाया जाता है। यह फीचर गेमिंग ऐप्स, म्यूजिक प्लेयर्स या किसी भी ऐसे ऐप के लिए उपयोगी हो सकता है जहां यूजर इंटरैक्शन के लिए फिजिकल शेक का उपयोग किया जाता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio खोलें और File → New Project चुनें। आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फाइल कॉन्फ़िगर करें

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>

चरण 3: MainActivity में लॉजिक लागू करें

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() {
        mSensorManager.unregisterListener(mSensorListener);
        super.onPause();
    }
}

चरण 4: मैनिफेस्ट फाइल अपडेट करें

androidManifest.xml में आवश्यक परमिशन और एक्टिविटी कॉन्फ़िगरेशन सुनिश्चित करें।

ऐप चलाएं और टेस्ट करें

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें, Android Studio में Run आइकन पर क्लिक करें और अपने डिवाइस को चुनें। ऐप लॉन्च होने पर फोन को हिलाकर शेक इवेंट टेस्ट करें।

महत्वपूर्ण नोट्स

  • थ्रेशोल्ड मान (12) को अपनी आवश्यकतानुसार एडजस्ट करें
  • बैटरी बचाने के लिए onPause() में लिस्टनर अनरजिस्टर करना न भूलें
  • अधिक सटीक डिटेक्शन के लिए लो-पास फिल्टर का उपयोग करें
  1. एंड्रॉइड ऐप में TextToSpeech कैसे बनाएं? एंड्रॉइड ऐप में TextToSpeech कैसे बनाएं?

    एंड्रॉइड ऐप में टेक्स्ट-टू-स्पीच (TTS) लागू करना यह उदाहरण दिखाता है कि एंड्रॉइड ऐप में TextToSpeech फीचर कैसे जोड़ा जाता है, जिससे ऐप लिखे गए टेक्स्ट को आवाज़ में बदल सके। चरण 1: नया प्रोजेक्ट बनाएं Android Studio खोलें, File → New Project चुनें और आवश्यक विवरण भरकर नया प्रोजेक्ट बनाएं। चरण 2: ले

  1. Facebook पर Android ऐप कैसे बनाएं? Facebook पर Android ऐप कैसे बनाएं?

    Facebook Developer Console पर ऐप बनाकर App ID प्राप्त करने की चरण-दर-चरण प्रक्रिया। चरण 1: Facebook Developer Console पर ऐप बनाएं developers.facebook.com पर जाएं My Apps → Create App चुनें ऐप नाम और ईमेल दर्ज करें Create App ID पर क्लिक करें चरण 2: Android Studio में SDK जोड़ें प्रोजेक्ट-लेवल bu

  1. Android में 5 सेकंड यूजर इनएक्टिविटी कैसे डिटेक्ट करें? Android में 5 सेकंड यूजर इनएक्टिविटी कैसे डिटेक्ट करें?

    यह उदाहरण दर्शाता है कि Handler और onUserInteraction() का उपयोग करके Android में यूजर इनएक्टिविटी (कोई टच/की इवेंट नहीं) को कैसे डिटेक्ट किया जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project। चरण 2: लेआउट XML res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-