सहयोगी ऐप स्ट्रीमिंग

एंड्रॉइड 13 में, ऐप स्ट्रीमिंग सुविधा फोन को अपने ऐप को कनेक्टेड डिवाइस पर स्ट्रीम करने देती है, और उन डिवाइस को ऐप के साथ इंटरैक्ट करने देती है। एक नई COMPANION_DEVICE_APP_STREAMING भूमिका ऐप को स्थानीय डिवाइस से दूरस्थ डिवाइस पर ऐप्स स्ट्रीम करने के लिए कनेक्टेड रिमोट डिवाइस के लिए प्रॉक्सी बनाने और प्रबंधित करने देती है। COMPANION_DEVICE_APP_STREAMING भूमिका रखने वाला ऐप वर्चुअल डिस्प्ले बनाने, उस पर एक ऐप लॉन्च करने और फिर लॉन्च किए गए ऐप के वीडियो को किसी अन्य डिवाइस पर स्ट्रीम करने की अनुमति प्राप्त कर सकता है। रोल होल्डर ऐप रिमोट डिवाइस से प्राप्त इनपुट और माइक्रोफ़ोन इवेंट को स्थानीय डिवाइस में वापस इंजेक्ट कर सकता है, जैसे कि वह डिवाइस एक परिधीय के रूप में जुड़ा हुआ था।

वास्तुकला

एंड्रॉइड 13 की शुरुआत में, नया वर्चुअल डिवाइस मैनेजर और कंपेनियन डिवाइस मैनेजर (सीडीएम) ऐप स्ट्रीमिंग और रिमोट, कनेक्टेड डिवाइस के साथ इंटरैक्शन का समर्थन करने के लिए प्रमुख बिल्डिंग ब्लॉक बनाते हैं।

वर्चुअल डिवाइस मैनेजर

ऐप स्ट्रीमिंग वर्चुअल डिस्प्ले का लाभ उठाकर काम करती है। वर्चुअल डिवाइस मैनेजर एक वर्चुअल डिस्प्ले बनाता है जो दृश्यमान प्राथमिक डिस्प्ले से अलग होता है। जब उपयोगकर्ता किसी ऐप की स्ट्रीमिंग शुरू करने के लिए सहमति देता है, तो ऐप को वर्चुअल डिस्प्ले पर लॉन्च किया जाता है, या स्थानांतरित किया जाता है। वर्चुअल डिस्प्ले की सामग्री को प्रदर्शित करने के लिए कनेक्टेड डिवाइस पर वीडियो स्ट्रीम में स्थानांतरित किया जाता है।

वर्चुअल डिवाइस मैनेजर में एपीआई शामिल हैं जो VirtualDevice इंस्टेंस के निर्माण, पंजीकरण और प्रबंधन को सक्षम करते हैं।

VirtualDevice इंस्टेंस कनेक्टेड डिवाइस और उसकी क्षमताओं के लिए एक प्रॉक्सी है। एक VirtualDevice इंस्टेंस एक कनेक्टेड डिवाइस को निम्नलिखित कार्य करके आने वाली ऐप स्ट्रीम को प्राप्त करने, प्रदर्शित करने और उसके साथ इंटरैक्ट करने में सक्षम बनाता है:

  • कनेक्टेड डिवाइस के डिस्प्ले पर प्रदर्शित करने के लिए एक VirtualDisplay इंस्टेंस बनाना।
  • प्लेबैक के लिए स्थानीय डिवाइस में कनेक्टेड डिवाइस के माइक्रोफ़ोन जैसे दूरस्थ ऑडियो स्ट्रीम को इंजेक्ट करना।
  • प्लेबैक के लिए कनेक्टेड डिवाइस के कीबोर्ड जैसे रिमोट इनपुट इवेंट को स्थानीय डिवाइस में इंजेक्ट करना।

सहयोगी डिवाइस मैनेजर

सीडीएम कनेक्टिविटी स्थिति का प्रबंधन करता है और भूमिका आवश्यकताओं को लागू करता है जिन्हें ऐप स्ट्रीमिंग को सक्षम करने के लिए पूरा किया जाना चाहिए।

निम्नलिखित चित्र ऐप स्ट्रीमिंग के दौरान स्थानीय और दूरस्थ डिवाइस के बीच की बातचीत को दर्शाता है:

app-streaming-interaction

चित्र 1. ऐप स्ट्रीमिंग के दौरान स्थानीय और दूरस्थ उपकरणों के बीच इंटरैक्शन

सहयोगी ऐप स्ट्रीमिंग भूमिका का कार्यान्वयन

OEM अपने डिवाइस पर समृद्ध और सुरक्षित क्रॉस-डिवाइस अनुभव को सक्षम करने के लिए COMPANION_DEVICE_APP_STREAMING भूमिका के साथ एक ऐप लागू कर सकते हैं।

ऐप स्ट्रीमिंग को सक्षम करने के लिए एक वर्चुअल डिवाइस बनाने के लिए, एक ऐप को COMPANION_DEVICE_APP_STREAMING भूमिका का रोल धारक होना चाहिए। जब भूमिका दी जाती है, तो ऐप को CREATE_VIRTUAL_DEVICE अनुमति प्राप्त होती है, जो ऐप को वर्चुअल डिवाइस बनाने में सक्षम बनाती है। भूमिका धारकों से अपेक्षा की जाती है कि वे एक VirtualDevice इंस्टेंस बनाकर ऐप स्ट्रीमिंग को लागू करें जो कनेक्टेड डिवाइस के लिए प्रॉक्सी के रूप में कार्य करता है। VirtualDevice क्लास ऐसे तरीके प्रदान करता है जो वर्चुअल डिस्प्ले की मिश्रित सतह को निकालने में सक्षम बनाता है, जो किसी अन्य डिवाइस पर स्ट्रीमिंग के लिए उपयुक्त है। VirtualDevice क्लास रिमोट डिवाइस पर होने वाले इनपुट इवेंट को स्थानीय डिवाइस में इंजेक्ट करने के लिए एपीआई भी प्रदान करता है, जिससे स्थानीय डिवाइस पर चल रहे ऐप को ऐसा दिखने में सक्षम बनाया जाता है जैसे कि यह रिमोट डिवाइस पर मूल रूप से चल रहा हो।

सहयोगी ऐप स्ट्रीमिंग भूमिका को लागू करने के लिए इन चरणों का पालन करें:

  1. एक ऐप बनाएं जो मेनिफेस्ट में REQUEST_COMPANION_PROFILE_APP_STREAMING अनुमति का अनुरोध करता है।

  2. उपयोगकर्ता को ऐप स्ट्रीमिंग करने की अनुमति देने के लिए प्रेरित करें।

  3. COMPANION_DEVICE_APP_STREAMING भूमिका का अनुरोध करने के लिए CDM AssociationRequest उदाहरण बनाएं। भूमिका दिए जाने पर ऐप को CREATE_VIRTUAL_DEVICE अनुमति प्राप्त होती है।

  4. VirtualDevice इंस्टेंस बनाने के लिए VirtualDeviceManager#create() को कॉल करें। VirtualDevice इंस्टेंस के साथ, ऐप वर्चुअल डिस्प्ले और वर्चुअल इनपुट बना और प्रबंधित कर सकता है।

  5. वर्चुअल डिस्प्ले पर अधिसूचना के लंबित इरादे को लॉन्च करें और उस डिस्प्ले का वीडियो कैप्चर बनाएं।

  6. कनेक्टेड डिवाइस से कनेक्शन बनाएं और वर्चुअल डिस्प्ले को कनेक्टेड डिवाइस पर स्ट्रीम करें।

  7. VirtualDevice एपीआई के माध्यम से कनेक्टेड डिवाइस से स्थानीय डिवाइस में बैक इनपुट इवेंट इंजेक्ट करें।

  8. जब उपयोगकर्ता रिमोट डिवाइस पर स्ट्रीमिंग ऐप बंद कर देता है, तो स्ट्रीम समाप्त करें और VirtualDevice इंस्टेंस को फाड़ दें। इस बिंदु पर, पहले वाला स्ट्रीमिंग ऐप स्थानीय डिवाइस पर पृष्ठभूमि में चलता है और कनेक्शन बंद हो जाता है।

  9. यदि आवश्यक हो, तो ऐप स्ट्रीमिंग को पुनः आरंभ करने के लिए कनेक्टेड डिवाइस से अधिक सिग्नल की प्रतीक्षा करें।

ऐप रिमोट डिवाइस से कनेक्ट करने, सीडीएम को कनेक्टिविटी स्थिति की रिपोर्ट करने और सीडीडी में वर्णित सुरक्षा आवश्यकताओं को लागू करने के लिए जिम्मेदार है।

COMPANION_DEVICE_APP_STREAMING भूमिका धारक आवश्यकताएँ

जब उपयोगकर्ता किसी डिवाइस के साथ ऐप स्ट्रीमिंग ऐप को जोड़ता है तो सीडीएम COMPANION_DEVICE_APP_STREAMING भूमिका प्रदान करता है। यह भूमिका डिवाइस प्रोफ़ाइल से संबद्ध है, इसलिए इस पर कुछ नियंत्रण होता है कि इस प्रोफ़ाइल से मेल खाने वाले कौन से ऐप्स को Play Store में जोड़ा जा सकता है। COMPANION_DEVICE_APP_STREAMING भूमिका आवश्यकताओं की सूची के लिए Android भूमिकाएँ देखें। अधिक जानकारी के लिए अपने Google संपर्क बिंदु से संपर्क करें।

COMPANION_DEVICE_APP_STREAMING भूमिका धारक क्षमताएं

ऐप स्ट्रीमिंग करने के लिए, COMPANION_DEVICE_APP_STREAMING भूमिका मानती है कि भूमिका धारक ऐप में निम्नलिखित क्षमताएं और व्यवहार हैं:

  • अन्य डिवाइसों से कनेक्शन बनाएं और प्रबंधित करें।
  • अनलॉक किए गए डिस्प्ले सहित विश्वसनीय वर्चुअल डिस्प्ले बनाएं और प्रबंधित करें, निम्नानुसार:
    • वर्चुअल डिस्प्ले पर गतिविधियाँ प्रारंभ करें।
    • किसी कनेक्टेड डिवाइस पर स्ट्रीम किए गए ऐप पर होने वाली घटनाओं को स्थानीय डिवाइस पर वापस इंजेक्ट करें, जैसे टैबलेट पर टच इवेंट को फोन पर समान निर्देशांक पर चलाना।
    • स्ट्रीम किए गए ऐप से ऑडियो डेटा कैप्चर करें।
    • जब कोई स्ट्रीम किया गया ऐप माइक्रोफ़ोन का उपयोग कर रहा हो, तो स्थानीय डिवाइस के माइक्रोफ़ोन स्ट्रीम को कनेक्टेड डिवाइस के माइक्रोफ़ोन स्ट्रीम से बदलें।
    • जब कोई स्ट्रीम किया गया ऐप कैमरे का उपयोग कर रहा हो तो स्थानीय डिवाइस के कैमरा स्ट्रीम को कनेक्टेड डिवाइस के कैमरा स्ट्रीम से बदलें।
  • स्थानीय डिवाइस से कनेक्टेड डिवाइस पर सूचनाएं प्रबंधित और स्ट्रीम करें, और सूचनाओं पर कार्रवाई करें।
  • स्थानीय डिवाइस से मेटाडेटा स्ट्रीम करें, जैसे स्थानीय डिवाइस पर उपलब्ध ऐप्स की सूची, कनेक्टेड डिवाइस पर।
  • डिवाइस सत्यापन का अनुरोध करें.