একটি ডিভাইস অপসারণের ক্ষেত্রে এটিকে কাঠামো থেকে ডিকমিশন করা জড়িত। একজন ব্যবহারকারী Google Home app (GHA) ব্যবহার করে এটি করতে পারেন, এবং একটি অ্যাপ প্রোগ্রাম্যাটিকভাবে একটি স্মার্ট হোম ডিভাইসকে ডিকমিশন করতে পারে। কোন ডিভাইসগুলি সরানো যেতে পারে তার সীমাবদ্ধতা রয়েছে। এছাড়াও, একটি ডিভাইস অপসারণ করলে আপনার কাঠামো এবং আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা প্রভাবিত হতে পারে।
আপনি কী সরাতে পারেন
আপনি হোম এপিআই-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরাতে পারেন:
- আপনার অ্যাপের যেসব ডিভাইসের অনুমতি আছে, সেগুলো Matter ।
- Matter ব্রিজ, যদি আপনার অ্যাপটি ব্রিজের মাধ্যমে সংযুক্ত সমস্ত ডিভাইসে অ্যাক্সেস পায়। ব্রিজটি সরিয়ে ফেললে এর সাথে সংযুক্ত সমস্ত Matter ডিভাইস মুছে যাবে।
যা আপনি সরাতে পারবেন না
হোম এপিআই-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরানো যাবে না:
- যেসব ডিভাইসের জন্য আপনার অ্যাপে ব্যবহারকারীর অনুমতি নেই, সেগুলো 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 ডিভাইস অপসারণ করতে, decommissionDevice() কল করুন:
val decommissionedDeviceIds = device.decommissionDevice()
যদি কলটি কোনও ত্রুটি না করে, তাহলে এটি সফল হয়েছে।
আপনি decommissionDevice() দ্বারা ফেরত দেওয়া আইডিগুলির মধ্যে ডিভাইসটির আইডি আছে কিনা তা পরীক্ষা করে দেখতে পারেন:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
অ-বিষয়বস্তু ডিভাইস
নন- Matter ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরানো যাবে না। নন- Matter ডিভাইসটি সরাতে, আপনি একটি সিঙ্ক অনুরোধ জারি করতে পারেন ( রিকোয়েস্ট সিঙ্ক দেখুন), অথবা Cloud-to-cloud ইন্টিগ্রেশন মুছে ফেলতে পারেন ( লঞ্চ করা ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন দেখুন)।
যদি আপনি একটি নন- Matter ডিভাইসে decommissionDevice() কল করেন, তাহলে একটি HomeException নিক্ষেপ করা হবে।
একবার আপনি একটি নন- Matter ডিভাইস অপসারণ করলে, ডিভাইসটির উপস্থিতি পরীক্ষা করে দেখুন যে এটি সফলভাবে সরানো হয়েছে কিনা:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }
মাল্টি-সোর্স ডিভাইস
মাল্টি-সোর্স ডিভাইস হলো এমন ডিভাইস যা Cloud-to-cloud এবং Matter API উভয়ই ব্যবহার করে। যদি আপনি এই ধরনের ডিভাইসের ডিকমিশন যোগ্যতা পরীক্ষা করেন, তাহলে আপনি একটি DecommissionIneligibleReason.multiSourceDevice পাবেন, যা নির্দেশ করে যে ডিভাইসটি মাল্টি-সোর্স হওয়ায় এটি ডিকমিশন করা যাবে না।
একটি মাল্টি-সোর্স ডিভাইস অপসারণ করতে, নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:
- নন-ম্যাটার ডিভাইসে বর্ণিত Cloud-to-cloud অ্যাসোসিয়েশনটি সরান।
- ম্যাটার ডিভাইসগুলিতে বর্ণিত Matter ডিভাইসটি বাতিল করুন।
এই ধাপগুলির ক্রম গুরুত্বপূর্ণ। যদি আপনি Cloud-to-cloud অ্যাসোসিয়েশন অপসারণের আগে Matter ডিভাইসটি ডিকমিশন করার চেষ্টা করেন, তাহলে একটি HomeException নিক্ষেপ করা হবে।