किसी डिवाइस को हटाने का मतलब है कि उसे स्ट्रक्चर से हटाना. कोई उपयोगकर्ता, Google Home app (GHA) का इस्तेमाल करके ऐसा कर सकता है. साथ ही, कोई ऐप्लिकेशन प्रोग्राम के ज़रिए स्मार्ट होम डिवाइस को स्ट्रक्चर से हटा सकता है. डिवाइसों को हटाने से जुड़ी कुछ पाबंदियां हैं. इसके अलावा, किसी डिवाइस को हटाने से आपके ऐप्लिकेशन के स्ट्रक्चर और उपयोगकर्ता अनुभव पर असर पड़ सकता है.
किन डिवाइसों को हटाया जा सकता है
Home API की मदद से, इन डिवाइसों को प्रोग्राम के ज़रिए हटाया जा सकता है:
- Matter वाले वे डिवाइस जिनके लिए आपके ऐप्लिकेशन के पास अनुमतियां हैं.
- Matter वाले ब्रिज, बशर्ते आपके ऐप्लिकेशन के पास ब्रिज से कनेक्ट किए गए सभी डिवाइसों का ऐक्सेस हो. ब्रिज को हटाने पर, उससे कनेक्ट किए गए सभी Matter डिवाइस हट जाते हैं.
किन डिवाइसों को नहीं हटाया जा सकता
Home API की मदद से, इन डिवाइसों को प्रोग्राम के ज़रिए नहीं हटाया जा सकता:
- Matter वे डिवाइस जिनके लिए आपके ऐप्लिकेशन के पास उपयोगकर्ता की अनुमतियां नहीं हैं.
- Matter वाले ब्रिज से कनेक्ट किए गए अलग-अलग डिवाइस.
- Cloud-to-cloud लिंक किए गए डिवाइस.
- डुअल-पाथ वाले डिवाइस (वे डिवाइस जिनमें Matter और Cloud-to-cloud दोनों की सुविधाएं मौजूद हैं).
किसी डिवाइस को हटाने से पहले ध्यान रखने वाली अहम बातें
जब आपका ऐप्लिकेशन किसी डिवाइस को हटाता है, तो उसे पूरे स्ट्रक्चर से हटा दिया जाता है. इससे सभी उपयोगकर्ताओं और सभी ऐप्लिकेशन पर असर पड़ता है. इनमें GHA भी शामिल है. डिवाइस के टाइप के हिसाब से, उसे स्ट्रक्चर से हटाने पर ये साइड इफ़ेक्ट हो सकते हैं:
- एक से ज़्यादा टाइप वाले डिवाइस: अगर किसी डिवाइस में एक से ज़्यादा फ़ंक्शन हैं, तो उसे हटाने पर उससे जुड़े सभी डिवाइस भी हट जाते हैं. उदाहरण के लिए, स्मार्ट लाइट हब के तौर पर भी काम करती है. ऐसे में, स्मार्ट लाइट को हटाने पर उससे जुड़े सभी डिवाइस भी हट जाएंगे. अगर एक से ज़्यादा डिवाइस के फ़ंक्शन पर असर पड़ेगा, तो ऐप्लिकेशन को उपयोगकर्ता को इसकी जानकारी देनी चाहिए.
- डिवाइस का इतिहास: किसी डिवाइस को मिटाने पर, हो सकता है कि डिवाइस का इतिहास भी मिट जाए.
- शेयर किए गए प्लैटफ़ॉर्म: शेयर किए गए प्लैटफ़ॉर्म पर मौजूद डिवाइसों को मिटाते समय सावधान रहें, क्योंकि इससे दूसरों पर अनचाहा असर पड़ सकता है.
- पुष्टि: डिवाइस को सिर्फ़ पुष्टि किए गए प्लैटफ़ॉर्म से हटाया जाना चाहिए. जैसे, मोबाइल फ़ोन. टीवी जैसे पुष्टि नहीं किए गए डिवाइसों से नहीं. ऐसा करने से, Google Home के लिए डेवलपर नीतियों का उल्लंघन होता है.
किसी डिवाइस को हटाना
यह देखना कि किसी डिवाइस को हटाया जा सकता है या नहीं, महंगा होता है. इसलिए, ऐसा सिर्फ़ तब किया जाना चाहिए, जब इसकी ज़रूरत हो. यह देखने के लिए कि किसी डिवाइस को हटाया जा सकता है या नहीं, यह कमांड इस्तेमाल करें:
val eligibility = device.checkDecommissionEligibility() if (eligibility is DecommissionEligibility.Ineligible) { println("The device cannot be decommissioned.") } else if (eligibility is DecommissionEligibility.EligibleWithSideEffects) { println("The device can be decommissioned but there will be side effects on other devices.") } else if (eligibility is DecommissionEligibility.Eligible) { println("The device can be decommissioned.") }
Matter वाले डिवाइस
Matter वाले किसी डिवाइस को प्रोग्राम के ज़रिए हटाया जा सकता है, बशर्ते वह डिवाइस Matter वाले ब्रिज से कनेक्ट न हो.
किसी Matter डिवाइस को हटाने के लिए, उस पर
decommissionDevice()
को कॉल करें:
val decommissionedDeviceIds = device.decommissionDevice()
अगर कॉल करने पर कोई गड़बड़ी नहीं होती है, तो इसका मतलब है कि डिवाइस को हटा दिया गया है.
यह देखा जा सकता है कि डिवाइस की आईडी, decommissionDevice() से मिली आईडी में शामिल है या नहीं:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
Matter वाले डिवाइसों के अलावा अन्य डिवाइस
Matter वाले डिवाइसों के अलावा अन्य डिवाइसों को प्रोग्राम के ज़रिए नहीं हटाया जा सकता. Matter वाले डिवाइसों के अलावा अन्य डिवाइसों को हटाने के लिए, सिंक करने का अनुरोध भेजा जा सकता है (सिंक करने का अनुरोध देखें). इसके अलावा, क्लाउड-टू-क्लाउड इंटिग्रेशन को मिटाया जा सकता है (लॉन्च किए गए क्लाउड-टू-क्लाउड इंटिग्रेशन को मिटाना देखें).MatterCloud-to-cloud
Matter वाले डिवाइसों के अलावा अन्य डिवाइसों पर decommissionDevice() को कॉल करने पर, HomeException दिखता है.Matter
Matter वाले डिवाइसों के अलावा अन्य डिवाइसों को हटाने के बाद, यह देखने के लिए कि डिवाइस को हटाया गया है या नहीं, उसकी मौजूदगी की जांच करें:Matter
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }