अलग-अलग तरह के ऑडियो और डिसप्ले ग्लास के साथ काम करने की योजना बनाना

इन XR डिवाइसों पर लागू होता है
इस गाइड की मदद से, इन तरह के एक्सआर डिवाइसों के लिए अनुभव बनाए जा सकते हैं.
ऑडियो और
डिसप्ले ग्लास

अलग-अलग तरह के ऑडियो और डिसप्ले ग्लास में अलग-अलग सुविधाएं होती हैं. उदाहरण के लिए, सभी ऑडियो ग्लास और डिसप्ले ग्लास में आवाज़ के ज़रिए ऑडियो सुनने की सुविधा होती है. हालांकि, सिर्फ़ डिसप्ले ग्लास में डिसप्ले होता है. इस डिसप्ले पर, आपका ऐप्लिकेशन Jetpack Compose Glimmer से बनाए गए यूज़र इंटरफ़ेस (यूआई) दिखा सकता है.

अलग-अलग डिवाइसों पर लोगों को बेहतर अनुभव देने के लिए, चश्मे के लिए Activity प्लान करें. इससे अलग-अलग डिवाइसों की क्षमताओं की जांच की जा सकेगी. इस तरीके से, डेवलपमेंट को आसान बनाया जा सकता है. इसके लिए, आपको एक ऐसी गतिविधि बनानी होती है जो अपने व्यवहार को अडैप्ट करती है. इसके बजाय, आपको ऐसी कई गतिविधियां बनानी होती हैं जो खास डिवाइसों को टारगेट करती हैं.

अनुमानित गतिविधियों की लाइफ़साइकल के बारे में जानकारी

ऑडियो ग्लास और डिसप्ले ग्लास के लिए बनाई गई गतिविधि, सीधे तौर पर डिवाइस पर नहीं चलती. इसके बजाय, इसे होस्ट डिवाइस (जैसे, उपयोगकर्ता का फ़ोन) से डिवाइस पर प्रोजेक्ट किया जाता है. इस मकसद के लिए बनाई गई खास गतिविधियों को अनुमानित गतिविधियां कहा जाता है. प्रोजेक्ट की गई गतिविधियों की लाइफ़साइकल, स्टैंडर्ड ऐक्टिविटी लाइफ़साइकल पर आधारित होती है. हालांकि, इसमें कई अहम अंतर भी होते हैं. ये अंतर, अलग-अलग तरह के ऑडियो ग्लास और डिसप्ले ग्लास की सुविधाओं के साथ काम करते हैं.

पहली इमेज. प्रोजेक्ट की गई गतिविधियों के लाइफ़साइकल में होने वाले मुख्य इवेंट.

यहां मुख्य इवेंट की जानकारी दी गई है. साथ ही, उन इंटरैक्शन के लिए कॉलआउट दिए गए हैं जो ऑडियो ग्लास और डिसप्ले ग्लास पर की जाने वाली गतिविधियों के हिसाब से खास हैं:

  • onCreate()
    • जब अनुमानित गतिविधि बनाई जाती है, तब इसे कॉल किया जाता है.
    • अपने ऐप्लिकेशन के Jetpack Compose Glimmer यूज़र इंटरफ़ेस (यूआई) और अन्य कॉम्पोनेंट को यहां शुरू करें.
  • onStart()
    • इस फ़ंक्शन को तब कॉल किया जाता है, जब प्रोजेक्ट की गई गतिविधि शुरू हो रही हो और उपयोगकर्ता को ऐप्लिकेशन के बारे में जानकारी हो.
  • onResume()
    • जब प्रोजेक्ट की गई ऐक्टिविटी को फिर से फ़ोकस किया जाता है, तब इस तरीके को कॉल किया जाता है. जब ऐक्टिविटी फ़ोकस में होती है, तब उससे इंटरैक्ट किया जा सकता है. साथ ही, वह टचपैड या बटन के इनपुट का इस्तेमाल कर सकती है.
    • जब चश्मे को सिर से उतारने के बाद फिर से पहना जाता है, तब इस इवेंट को कॉल किया जाता है.
  • onPause()
    • इस तरीके को तब कॉल किया जाता है, जब प्रोजेक्ट की गई गतिविधि का फ़ोकस हट जाता है. हालांकि, उपयोगकर्ता को अब भी आपके ऐप्लिकेशन के बारे में जानकारी होती है. गतिविधि के फ़ोकस से बाहर होने पर, उपयोगकर्ता उससे इंटरैक्ट नहीं कर पाता और वह इनपुट लेना बंद कर देती है.
  • onStop()
    • इस फ़ंक्शन को तब कॉल किया जाता है, जब सिस्टम को लगता है कि उपयोगकर्ता को अब आपके ऐप्लिकेशन के बारे में जानकारी नहीं है.
    • इस फ़ंक्शन को तब कॉल किया जाता है, जब चश्मे को सिर से हटाया जाता है.
  • onDestroy()
    • जब प्रोजेक्ट की गई गतिविधि खत्म होने वाली होती है, तब इस तरीके को कॉल किया जाता है. इस फ़ंक्शन को कॉल करने पर, सिस्टम उन सभी संसाधनों को रिलीज़ कर देता है जो गतिविधि से जुड़े होते हैं.

जानें कि डिसप्ले स्टेट से, गतिविधि के अनुमानित लाइफ़साइकल पर क्या असर पड़ता है

स्टैंडर्ड Activity में, डिवाइस की स्क्रीन बंद होने पर लाइफ़साइकल की स्थिति बदल जाती है. आम तौर पर, यह onPause() या onStop() में बदल जाती है. इसके उलट, चश्मे का डिसप्ले चालू या बंद होने पर, अनुमानित गतिविधि के लाइफ़साइकल में कोई बदलाव नहीं होता. इसका मतलब है कि डिसप्ले बंद होने पर भी, अनुमानित गतिविधि 'शुरू की गई' या 'फिर से शुरू की गई' स्थिति में चलती रहती है. इससे आपके ऐप्लिकेशन के ऑडियो अनुभव में कोई रुकावट नहीं आती.

सिस्टम और उपयोगकर्ता के अलग-अलग इवेंट से ट्रिगर होने वाले, गतिविधि की स्थिति में होने वाले अन्य बदलाव सामान्य तरीके से काम करते हैं.

जानें कि उपयोगकर्ता की जागरूकता से, आपकी अनुमानित गतिविधि पर क्या असर पड़ता है

किसी उपयोगकर्ता को आपकी अनुमानित गतिविधि के बारे में पता चल सकता है, भले ही वह उसे न दिखे. जागरूकता का मतलब उन सभी तरीकों से है जिनसे कोई उपयोगकर्ता आपके ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है. इनमें ये शामिल हैं:

  • ऑडियो, सुनाई देने वाले फ़ीडबैक या अन्य साउंड क्यू सुनना.
  • ऐप्लिकेशन की ऐसी कार्रवाइयां जिनसे उपयोगकर्ता को दिखने वाली एलईडी चालू होती है. जैसे, अगर आपका ऐप्लिकेशन कैमरे या माइक्रोफ़ोन को ऐक्सेस करता है, तो निजता इंडिकेटर.

इन स्थितियों में, उपयोगकर्ता को पता होता है कि ऑडियो ग्लास और डिसप्ले ग्लास चालू हैं और जवाब दे रहे हैं. भले ही, वह डिसप्ले की ओर न देख रहा हो:

  • अनुमानित गतिविधियों के लिए, onStart() स्थिति का मतलब है कि गतिविधि चालू है.
  • onResume() स्थिति का मतलब है कि गतिविधि के साथ इंटरैक्ट किया जा सकता है. साथ ही, यह टचपैड से इनपुट पा सकती है या इसे प्राइमरी इनपुट डिस्पैच मिल रहा है.

जब तक उपयोगकर्ता को आपके ऐप्लिकेशन के बारे में पता होता है, तब तक आपकी गतिविधि चालू रहती है और फ़ोरग्राउंड में दिखती है. अगर सिस्टम को कुछ समय तक, उपयोगकर्ता की गतिविधि का पता नहीं चलता है, तो सिस्टम उस गतिविधि को फ़ोरग्राउंड से हटा देता है. इसके बाद, onStop() ट्रिगर हो जाता है.

अनुमानित गतिविधियों और अनुमानित कॉन्टेक्स्ट के बारे में जानकारी

ऑडियो ग्लास और डिसप्ले ग्लास को कनेक्ट किए गए डिवाइस के तौर पर माना जाता है. ये उपयोगकर्ता के फ़ोन की सुविधाओं को बढ़ाते हैं. प्रोजेक्ट किया गया कॉन्टेक्स्ट, डिवाइस के बारे में जानकारी देने वाला Context होता है. इससे ऐप्लिकेशन, कनेक्ट किए गए चश्मे वाले डिवाइस के हार्डवेयर से इंटरैक्ट कर पाते हैं. जैसे, उसके सेंसर, कैमरे या माइक्रोफ़ोन से. इसके बजाय, वे फ़ोन के हार्डवेयर से इंटरैक्ट करते हैं. ऑडियो ग्लास और डिसप्ले ग्लास के लिए अनुभव डेवलप करते समय, आपके ऐप्लिकेशन को ग्लास के हार्डवेयर को ऐक्सेस करने के लिए, प्रोजेक्ट किए गए कॉन्टेक्स्ट का इस्तेमाल करना होगा.

कॉलिंग गतिविधि के कॉन्टेक्स्ट के आधार पर, आपके ऐप्लिकेशन को अनुमानित कॉन्टेक्स्ट अपने-आप दिया जा सकता है:

  • प्रोजेक्ट की गई गतिविधियों के लिए: अगर आपके ऐप्लिकेशन का कोड, प्रोजेक्ट की गई गतिविधि के अंदर से चल रहा है, तो उसकी गतिविधि का कॉन्टेक्स्ट पहले से ही प्रोजेक्ट किया गया कॉन्टेक्स्ट होता है. इस स्थिति में, उस गतिविधि के दौरान किए गए कॉल, चश्मे के हार्डवेयर को पहले से ही ऐक्सेस कर सकते हैं.

  • फ़ोन ऐप्लिकेशन या सेवाओं के लिए: अगर आपके ऐप्लिकेशन का कोई हिस्सा, प्रोजेक्ट की गई गतिविधि (जैसे कि फ़ोन पर की गई गतिविधि या कोई सेवा) के बाहर है और उसे चश्मे के हार्डवेयर को ऐक्सेस करना है, तो उसे प्रोजेक्ट किए गए कॉन्टेक्स्ट को साफ़ तौर पर हासिल करना होगा. इसके लिए, createProjectedDeviceContext() तरीके का इस्तेमाल करें.

ज़्यादा जानकारी के लिए, ऑडियो और डिसप्ले वाले स्मार्ट ग्लास पर हार्डवेयर ऐक्सेस करने के लिए, प्रोजेक्ट किए गए कॉन्टेक्स्ट का इस्तेमाल करना लेख पढ़ें.

डिवाइस के बारे में जानकारी देने वाले एपीआई के बारे में जानकारी

कुछ स्टैंडर्ड Android API, कॉल करने वाली गतिविधि के Context के आधार पर, यह बदलते हैं कि वे किस डिवाइस के हार्डवेयर को ऐक्सेस करते हैं. जब इन एपीआई को प्रोजेक्ट किया गया कॉन्टेक्स्ट मिलता है, तो ये होस्ट फ़ोन डिवाइस के हार्डवेयर के बजाय, चश्मे के हार्डवेयर को ऐक्सेस करते हैं:

  • CameraManager: इससे स्मार्ट ग्लास के कैमरे को ऐक्सेस किया जाता है.
  • SensorManager: यह चश्मे से सेंसर डेटा (उदाहरण के लिए, जाइरोस्कोप या एक्सलरोमीटर डेटा) को वापस लाता है.
  • AudioManager: यह चश्मे पर ऑडियो स्ट्रीम, वॉल्यूम, और रूटिंग को मैनेज करता है.
  • AudioRecord: चश्मे के माइक्रोफ़ोन का इस्तेमाल करके ऑडियो कैप्चर करता है.