कंपैनियन डिवाइस की प्रोफ़ाइलें

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

कंपैनियन डिवाइस प्रोफ़ाइल का इस्तेमाल करने के लिए, कंपैनियन ऐप्लिकेशन को ये ज़रूरी शर्तें पूरी करनी होंगी:

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

हर कंपैनियन डिवाइस प्रोफ़ाइल, Android की किसी भूमिका से जुड़ी होती है. हर प्रोफ़ाइल की अनुमतियों और उससे जुड़ी Android की भूमिका के बारे में ज़्यादा जानने के लिए, तीसरे पक्ष के ऐप्लिकेशन के लिए कंपैनियन डिवाइस प्रोफ़ाइलें लेख पढ़ें.

कंपैनियन डिवाइसों के बारे में ज़्यादा जानने के लिए, कंपैनियन डिवाइस को डिवाइस से जोड़ना लेख पढ़ें.

डिवाइस का व्यवहार

इस सेक्शन में, कंपैनियन डिवाइस प्रोफ़ाइल का इस्तेमाल करने पर डिवाइस के व्यवहार के बारे में बताया गया है.

जब कोई उपयोगकर्ता, कंपैनियन डिवाइस के साथ कनेक्शन बनाने के लिए किसी ऐप्लिकेशन के अनुरोध को स्वीकार करता है, तो CompanionDeviceManager (सीडीएम) सेवा, कंपैनियन ऐप्लिकेशन को डिवाइस प्रोफ़ाइल की भूमिका (उदाहरण के लिए, स्मार्टवॉच) असाइन करती है. इससे, उस तय की गई प्रोफ़ाइल की भूमिका के लिए तय की गई सभी अनुमतियां मिल जाती हैं. पहली इमेज में, COMPANION_DEVICE_WATCH डिवाइस प्रोफ़ाइल के लिए अनुमतियों का अनुरोध करने वाले ऐप्लिकेशन का उदाहरण दिखाया गया है.

डिवाइस प्रोफ़ाइल डायलॉग बॉक्स का प्रॉम्प्ट देखना

पहली इमेज. स्मार्टवॉच डिवाइस प्रोफ़ाइल के लिए अनुमतियों का अनुरोध करने वाला डायलॉग.

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

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

तीसरे पक्ष के ऐप्लिकेशन के लिए कंपैनियन डिवाइस प्रोफ़ाइलें

स्मार्टवॉच प्रोफ़ाइल

स्मार्टवॉच प्रोफ़ाइल, Android 12 में पेश की गई है.

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

अनुमतियां कंपैनियन ऐप्लिकेशन और डिवाइस की ज़रूरी शर्तें
सूचनाएं

POST_NOTIFICATIONS (added in Android 15)
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • ऐसी स्क्रीन हो जिस पर सूचनाएं दिख सकती हों. स्क्रीन के बजाय हैप्टिक का इस्तेमाल करने वाले डिवाइसों को शामिल नहीं किया जाता
  • उपयोगकर्ता को सूचनाएं दिखाने का अनुभव देता हो. उदाहरण के लिए, कंपैनियन डिवाइस की स्क्रीन पर फ़ोन की सूचनाएं दिखाना.
  • डिवाइस को मैनेज करने के लिए, फ़ोन की सूचनाएं पोस्ट करता हो. उदाहरण के लिए, जब कोई स्मार्टवॉच कनेक्ट की जाती है या जब कोई खास सुविधा चालू की जाती है.
Phone
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें पहले से माइक्रोफ़ोन और स्पीकर मौजूद हों, जिनसे आवाज़ में बातचीत की जा सकती हो
  • उसमें ऐसी स्क्रीन हो जिस पर कॉल करने वाले की जानकारी दिखती हो
  • उपयोगकर्ता को फ़ोन कॉल करने का अनुभव देता हो. कंपैनियन ऐप्लिकेशन, फ़ोन कॉल को ब्रिज करता है
SMS
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें ऐसी स्क्रीन हो जिस पर एसएमएस दिखते हों
  • उपयोगकर्ता को एसएमएस भेजने और पाने का अनुभव देता हो
Contacts
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • कॉल करने या मैसेज भेजने के अनुभव के तहत, संपर्क जानकारी का इस्तेमाल करता हो
Calendar
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • स्मार्टवॉच पर, उपयोगकर्ता को कैलेंडर का अनुभव देता हो
Nearby devices
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • स्मार्टवॉच पर, उपयोगकर्ता को पेयर करने/कनेक्ट करने का अनुभव देता हो
eSIM provisioning
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • उपयोगकर्ता को ऐसा अनुभव देता हो जिससे स्मार्टवॉच पर, ऑपरेटर की सेवाओं को मैनेज किया जा सके
Managing ongoing calls
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें पहले से माइक्रोफ़ोन और स्पीकर मौजूद हों, जिनसे आवाज़ में बातचीत की जा सकती हो
  • उसमें ऐसी स्क्रीन हो जिस पर कॉल करने वाले की जानकारी दिखती हो
  • उपयोगकर्ता को फ़ोन कॉल करने का अनुभव देता हो. कंपैनियन ऐप्लिकेशन, फ़ोन कॉल को ब्रिज करता है

चश्मे की प्रोफ़ाइल

चश्मे की प्रोफ़ाइल, Android 14 में पेश की गई है.

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

अनुमतियां कंपैनियन ऐप्लिकेशन और डिवाइस की ज़रूरी शर्तें
सूचनाएं

POST_NOTIFICATIONS
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • ऐसी स्क्रीन हो जिस पर सूचनाएं दिख सकती हों. स्क्रीन के बजाय हैप्टिक का इस्तेमाल करने वाले डिवाइसों को शामिल नहीं किया जाता
  • उपयोगकर्ता को सूचनाएं दिखाने का अनुभव देता हो. उदाहरण के लिए, कंपैनियन डिवाइस की स्क्रीन पर फ़ोन की सूचनाएं दिखाना.
  • डिवाइस को मैनेज करने के लिए, फ़ोन की सूचनाएं पोस्ट करता हो. उदाहरण के लिए, जब चश्मे वाला डिवाइस कनेक्ट किया जाता है या जब कोई खास सुविधा चालू की जाती है.
Phone
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें पहले से माइक्रोफ़ोन और स्पीकर मौजूद हों, जिनसे आवाज़ में बातचीत की जा सकती हो
  • उसमें ऐसी स्क्रीन हो जिस पर कॉल करने वाले की जानकारी दिखती हो
  • उपयोगकर्ता को फ़ोन कॉल करने का अनुभव देता हो. कंपैनियन ऐप्लिकेशन, फ़ोन कॉल को ब्रिज करता है
SMS
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें ऐसी स्क्रीन हो जिस पर एसएमएस दिखते हों
  • उपयोगकर्ता को एसएमएस भेजने और पाने का अनुभव देता हो
Contacts
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • कॉल करने या मैसेज भेजने के अनुभव के तहत, संपर्क जानकारी का इस्तेमाल करता हो
Microphone
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • चश्मे पर, उपयोगकर्ता को माइक्रोफ़ोन का अनुभव देता हो
Nearby devices
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें डिसप्ले स्क्रीन हो
  • चश्मे पर, उपयोगकर्ता को पेयर करने/कनेक्ट करने का अनुभव देता हो
Managing ongoing calls
  • ब्लूटूथ और/या वाई-फ़ाई का इस्तेमाल करके, कनेक्ट किया गया डिवाइस हो
  • उसमें पहले से माइक्रोफ़ोन और स्पीकर मौजूद हों, जिनसे आवाज़ में बातचीत की जा सकती हो
  • उसमें ऐसी स्क्रीन हो जिस पर कॉल करने वाले की जानकारी दिखती हो
  • उपयोगकर्ता को फ़ोन कॉल करने का अनुभव देता हो. कंपैनियन ऐप्लिकेशन, फ़ोन कॉल को ब्रिज करता है

लागू करना

तीसरे पक्ष के डेवलपर, कंपैनियन ऐप्लिकेशन लागू करने के लिए जो DEVICE_PROFILE_WATCH प्रोफ़ाइल का अनुरोध करता है, यह तरीका अपनाएं:

  1. Call the setDeviceProfile तरीके को कॉल करें.

  2. कोई प्रोफ़ाइल पास करें. उदाहरण के लिए, DEVICE_PROFILE_WATCH बनाते समय AssociationRequest.

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

  1. सर्टिफ़िकेट पाने के लिए, यह निर्देश इस्तेमाल करें:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. कॉन्फ़िगरेशन फ़ाइल में, यहां दिए गए इनपुट के सैंपल में दिखाए गए तरीके से, पैकेज का नाम और सर्टिफ़िकेट बदलें:

    <!-- A list of packages managing companion device(s) by the same manufacturers as the main device.
    It will not create the association without prompting if the association has been called multiple
    times in a short period. Note that config_companionDeviceManagerPackage and config_companionDeviceCerts
    are parallel arrays. -->
    
    <string-array name="config_companionDevicePackages" translatable="false">
        <item>YOUR_COMPANION_APP_PACKAGE_NAME</item>
    </string-array>
    
    <!-- A list of SHA256 Certificates managing companion device(s) by the same manufacturers as the
    main device. It will fall back to showing a prompt if the association has been called multiple
    times in a short period. Note that config_companionDeviceCerts and config_companionDeviceManagerPackage
    are parallel arrays.
    Example: "1A:2B:3C:4D" -->
    
    <string-array name="config_companionDeviceCerts" translatable="false">
        <item>YOUR_COMPANION_APP_CERTIFICATE</item>
    </string-array>
    
  3. किसी एक कंपैनियन डिवाइस के लिए, कनेक्शन का अनुरोध करने के लिए AssociationRequest का इस्तेमाल करें.

सत्यापन

कंपैनियन डिवाइस प्रोफ़ाइल की सुविधा के व्यवहार की जांच करने के लिए, सीटीएस टेस्ट का इस्तेमाल करें cts/tests/tests/companion/.