हैप्टिक्स के इस्तेमाल के सबसे बुनियादी उदाहरणों में से एक है, उपयोगकर्ता के इंटरैक्शन के लिए फ़ीडबैक देना. समय चुनने वाले टूल, वर्चुअल कीबोर्ड पर बटन दबाने, और टेक्स्ट चुनने के लिए, हैप्टिक सुझाव का इस्तेमाल किया जा सकता है. वाइब्रेशन की सुविधा कब और कैसे लागू करें, इस बारे में ज़्यादा जानने के लिए, वाइब्रेशन की सुविधा के डिज़ाइन के सिद्धांत पढ़ें.
इस पेज पर, वाइब्रेशन फ़ीडबैक देने के तीन तरीके बताए गए हैं.
View
(इसका सुझाव दिया जाता है) का इस्तेमाल करें. यह तरीका कार्रवाई पर आधारित है. इसे ज़्यादातर डिवाइसों पर इस्तेमाल किया जा सकता है. साथ ही, इसके लिएVIBRATE
की अनुमति की ज़रूरत नहीं होती.- पहले से तय किए गए
VibrationEffect
का इस्तेमाल करें. इस तरीके से ज़्यादा सुविधाएं मिलती हैं, लेकिन कुछ कमियां भी हैं. - प्राइमिटिव के साथ बेहतर कंपज़िशन का इस्तेमाल करना. यह तरीका नया और ज़्यादा आसान है. हालांकि, इसके लिए डिवाइस के लिए उपलब्ध सहायता की ज़रूरत होती है.
ये तरीके, डिवाइस के लेवल पर तय किए गए प्राइमिटिव का इस्तेमाल करके, डिवाइस के हिसाब से अच्छी क्वालिटी का सुझाव देते हैं.
वाइब्रेशन के सभी तरीके, डिफ़ॉल्ट रूप से उपयोगकर्ता की टच फ़ीडबैक सेटिंग के हिसाब से काम करते हैं.
हैप्टिक फ़ीडबैक जनरेट करने के लिए, View
कॉम्पोनेंट का इस्तेमाल करना
हैप्टिक फ़ीडबैक जनरेट करने के लिए, View.performHapticFeedback
तरीके का इस्तेमाल करें. HapticFeedbackConstants
से तय किए गए वाइब्रेशन के कॉन्स्टेंट, ऐप्लिकेशन में उनकी फ़ंक्शनैलिटी पर फ़ोकस करते हैं, न कि वाइब्रेशन के टाइप पर.
डिवाइस और हार्डवेयर की सुविधाओं के आधार पर, इस सुविधा को लागू करने का तरीका अलग-अलग हो सकता है. हालांकि, ऐप्लिकेशन को किसी खास संदर्भ में सुझाव या राय देने के लिए, सिर्फ़ सुझाव या राय के टाइप पर ध्यान देने की ज़रूरत होती है. फ़ंक्शन पर फ़ोकस करके, मिलते-जुलते इंटरैक्शन के लिए, वाइब्रेशन फ़ीडबैक की सुविधा चालू की जा सकती है. समय के साथ, उपयोगकर्ता अलग-अलग तरह के हैप्टिक सेंसेशन को अलग-अलग मतलब से जोड़ना सीख जाते हैं.
ज़रूरी शर्तें: हैप्टिक फ़ीडबैक की सुविधा चालू करना
जब तक View
दिखता है, तब तक उसके इवेंट के लिए हैप्टिक फ़ीडबैक का इस्तेमाल किया जा सकता है.
कुछ इवेंट, जैसे कि लंबे समय तक दबाने पर, डिफ़ॉल्ट रूप से हप्टिक्स ट्रिगर होते हैं. ये तब ट्रिगर होते हैं, जब व्यू पर मौजूद कोई listener इवेंट को मैनेज करता है (true
दिखाता है).
Android View
डिवाइस पर, View.hapticFeedbackEnabled
प्रॉपर्टी को false
पर सेट करके, वाइब्रेशन फ़ीडबैक की सुविधा बंद की जा सकती है. इस प्रॉपर्टी को बंद करने पर, डिफ़ॉल्ट सुझाव/राय मिलती है.
performHapticFeedback
तरीका, सिस्टम सेटिंग HAPTIC_FEEDBACK_ENABLED
का भी पालन करता है. इसकी मदद से, उपयोगकर्ता पूरे सिस्टम के लिए इन सेटिंग को बंद कर सकता है.
अन्य हैप्टिक एपीआई के उलट, View
के साथ HapticFeedbackConstants
का इस्तेमाल करने के लिए, VIBRATE
की अनुमति की ज़रूरत नहीं होती.
कोई HapticFeedbackConstant
चुनें
HapticFeedbackConstants
के साथ View
कॉम्पोनेंट का इस्तेमाल करते समय, किसी डिवाइस के साथ काम करने की जांच करने की ज़रूरत नहीं होती. ऐसा इसलिए, क्योंकि ज़रूरत पड़ने पर, इन कॉन्स्टेंट का फ़ॉलबैक व्यवहार होगा. सिर्फ़ यह ध्यान रखें कि आपको जिस कॉन्स्टेंट का इस्तेमाल करना है उसका SDK टूल का लेवल क्या है.
पहला उदाहरण: कीप्रेस
इस उदाहरण में, टच इनपुट में हैप्टिक फ़ीडबैक जोड़ने का तरीका बताया गया है. इसके लिए, View
में टच ऑडियंस का इस्तेमाल किया गया है. इन इफ़ेक्ट से, किसी बटन को दबाने और फिर उसे छोड़ने की भावना का अनुकरण होता है.
Kotlin
class HapticTouchListener : View.OnTouchListener { override fun onTouch(View view, MotionEvent event) : Boolean { when (event.actionMasked) { MotionEvent.ACTION_DOWN -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY) MotionEvent.ACTION_UP -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE) } return true } }
Java
class HapticTouchListener implements View.OnTouchListener { @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); break; case MotionEvent.ACTION_UP: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE); break; } return true; } }
दूसरा उदाहरण: सबमिट बटन
हैप्टिक फ़ीडबैक के इस्तेमाल के उदाहरण, डिवाइस के साथ फ़िज़िकल इंटरैक्शन को सिम्युलेट करने से ज़्यादा होते हैं. इनका इस्तेमाल, किसी खास बात को समझाने के लिए भी किया जा सकता है. उदाहरण के लिए, CONFIRM
इफ़ेक्ट के लिए आम तौर पर, कम समय के लिए और हल्के वाइब्रेशन की उम्मीद की जाती है. वहीं, REJECT
इफ़ेक्ट के लिए, गड़बड़ी का सिग्नल देने के लिए ज़्यादा वाइब्रेशन की उम्मीद की जा सकती है. सबमिट बटन के सुझाव/राय/शिकायत के लिए, नीचे दिए गए उदाहरण में इसे दिखाया गया है.
Kotlin
submitButton.setOnClickListener { view -> val successful = performSubmit() if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM) } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT) } }
Java
submitButton.setOnClickListener(view -> { boolean successful = performSubmit(); if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM); } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT); } });
हैप्टिक फ़ीडबैक जनरेट करने के लिए, पहले से तय किए गए VibrationEffect
का इस्तेमाल करना
View
-आधारित तरीके का इस्तेमाल करने से, उपयोगकर्ता के इंटरैक्शन पर फ़ोकस किया जाता है. पूरे सिस्टम में एक जैसा दिखने के लिए, इसे प्राथमिकता दी जाती है. हालांकि, पसंद के मुताबिक हैप्टिक फ़ीडबैक के असर के लिए, पहले से तय किए गए कुछ VibrationEffect
एपीआई भी इस्तेमाल किए जा सकते हैं.
पहले से तय किए गए इफ़ेक्ट, VibrationEffect
कंसटेंट के तौर पर उपलब्ध होते हैं. साथ ही, इनकी मदद से Vibrator
सेवा के साथ इफ़ेक्ट चलाए जा सकते हैं. इनके बारे में नीचे दिए गए उदाहरणों में बताया गया है.
VibrationEffect
एपीआई के साथ काम करने वाले डिवाइसों के बारे में जानकारी
सामान्य इस्तेमाल में, अलग-अलग VibrationEffect
एपीआई के साथ काम करने की ज़रूरत नहीं होती. Vibrator.areEffectsSupported
और Vibrator.areAllEffectsSupported
जैसे एपीआई का इस्तेमाल यह पता लगाने के लिए किया जाता है कि डिवाइस में, कॉन्स्टेंट को पसंद के मुताबिक लागू किया गया है या नहीं. अगर पसंद के मुताबिक बनाया गया इफ़ेक्ट मौजूद नहीं है, तो भी आपका ऐप्लिकेशन इफ़ेक्ट चला सकता है और प्लैटफ़ॉर्म के तय किए गए फ़ॉलबैक लागू करने का इस्तेमाल कर सकता है.
ज़्यादा जानकारी के लिए, पहले से तय किए गए
VibrationEffect
देखें.
ज़रूरी शर्तें: वाइब्रेटर और VIBRATE
की अनुमति लोड करें
ज़्यादातर वाइब्रेशन, Vibrator
सेवा की मदद से चलाए जा सकते हैं. इसे इस तरह लोड किया जा सकता है:
Kotlin
import android.os.Vibrator val vibrator = context.getSystemService(Vibrator::class.java)
Java
import android.os.Vibrator; Vibrator vibrator = context.getSystemService(Vibrator.class);
इस सेवा का इस्तेमाल करके डिवाइस को वाइब्रेट करने के लिए, ऐप्लिकेशन के पास VIBRATE
की अनुमति होनी चाहिए. अनुमति को ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में जोड़ा जा सकता है:
<uses-permission android:name="android.permission.VIBRATE"/>
पहले से तय किया गया VibrationEffect
चलाना
पहले से तय किए गए इफ़ेक्ट, VibrationEffect.createPredefined
का इस्तेमाल करके तैयार किए जा सकते हैं. इसके बाद, Vibrator
पर vibrate
के किसी एक तरीके का इस्तेमाल करके इन्हें चलाया जा सकता है.
इस उदाहरण में, क्लिक इफ़ेक्ट चलाया गया है.
Kotlin
val vibrator = context.getSystemService(Vibrator::class.java) ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
Java
Vibrator vibrator = context.getSystemService(Vibrator.class); ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
प्राइमिटिव के साथ बेहतर कंपोजिशन का इस्तेमाल करना
VibrationEffect.Composition
एपीआई, वाइब्रेशन के ज़रिए मिलने वाले फ़ीडबैक के लिए और भी विकल्प उपलब्ध कराता है. हालांकि, इफ़ेक्ट के उलट, इन प्राइमिटिव में सिस्टम-लेवल फ़ॉलबैक नहीं होते. इसका मतलब है कि डिवाइस पर काम करने वाले प्राइमिटिव और अन्य सुविधाओं पर ध्यान देने की ज़रूरत है.
इन एपीआई के इस्तेमाल के बारे में ज़्यादा जानकारी के लिए, कस्टम हैप्टिक इफ़ेक्ट बनाना लेख पढ़ें.