একটি ডিভাইস অপসারণ করার অর্থ হলো কাঠামো থেকে সেটিকে নিষ্ক্রিয় করা। একজন ব্যবহারকারী Google Home app (GHA) ব্যবহার করে এটি করতে পারেন, এবং একটি অ্যাপ প্রোগ্রামিংয়ের মাধ্যমে একটি স্মার্ট হোম ডিভাইসকে নিষ্ক্রিয় করতে পারে। কোন কোন ডিভাইস অপসারণ করা যাবে, সে বিষয়ে কিছু সীমাবদ্ধতা রয়েছে। এছাড়াও, একটি ডিভাইস অপসারণ করা হলে তা আপনার কাঠামো এবং আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতার উপর প্রভাব ফেলতে পারে।
আপনি যা সরাতে পারেন
আপনি হোম এপিআই (Home APIs) ব্যবহার করে প্রোগ্রাম্যাটিকভাবে নিম্নলিখিত ডিভাইসগুলি অপসারণ করতে পারেন:
- সেইসব ডিভাইস Matter যেগুলোর জন্য আপনার অ্যাপের অনুমতি রয়েছে।
- Matter ব্রিজগুলো তখনই কাজ করে, যখন আপনার অ্যাপের সেই ব্রিজের মাধ্যমে সংযুক্ত সমস্ত ডিভাইসে অ্যাক্সেস থাকে। ব্রিজটি সরিয়ে ফেললে এর সাথে সংযুক্ত সমস্ত Matter ডিভাইসও মুছে যায়।
যা আপনি সরাতে পারবেন না
নিম্নলিখিত ডিভাইসগুলি হোম এপিআই (Home APIs)-এর মাধ্যমে প্রোগ্রামগতভাবে সরানো যায় না:
- সেইসব ডিভাইস Matter যেগুলোর জন্য আপনার অ্যাপে ব্যবহারকারীর অনুমতি নেই।
- Matter ব্রিজের পেছনে সংযুক্ত স্বতন্ত্র ডিভাইসসমূহ।
- Cloud-to-cloud সংযুক্ত ডিভাইস।
- ডুয়াল-পাথ ডিভাইস (যেসব ডিভাইস Matter এবং Cloud-to-cloud উভয়ই বাস্তবায়ন করে)।
ডিভাইস অপসারণের আগে গুরুত্বপূর্ণ বিবেচ্য বিষয়সমূহ
যখন আপনার অ্যাপ কোনো ডিভাইস সরিয়ে দেয়, তখন সেটি সম্পূর্ণ কাঠামো থেকে মুছে যায়, যা GHA সহ সকল ব্যবহারকারী এবং সমস্ত অ্যাপকে প্রভাবিত করে। ডিভাইসটির ধরনের উপর নির্ভর করে, এটিকে নিষ্ক্রিয় করার কিছু অতিরিক্ত পার্শ্বপ্রতিক্রিয়া থাকতে পারে:
- একাধিক ডিভাইসের ধরণ বাস্তবায়নকারী ডিভাইস: যদি কোনো ডিভাইসের একাধিক কাজ থাকে — যেমন, একটি স্মার্ট লাইট যা হাব হিসেবেও কাজ করে, তবে সেটিকে সরিয়ে দিলে এর সাথে যুক্ত সমস্ত ডিভাইসও মুছে যাবে। ডিভাইসের একাধিক কাজ প্রভাবিত হলে অ্যাপটির উচিত ব্যবহারকারীকে তা জানিয়ে দেওয়া।
- ডিভাইসের ইতিহাস: কোনো ডিভাইস মুছে ফেললে তার ইতিহাসও মুছে যেতে পারে।
- শেয়ার করা প্ল্যাটফর্ম: শেয়ার করা প্ল্যাটফর্ম থেকে ডিভাইস ডিলিট করার সময় সতর্ক থাকুন, কারণ এর ফলে অন্যদের উপর অপ্রত্যাশিত প্রভাব পড়তে পারে।
- প্রমাণীকরণ: ডিভাইস অপসারণ শুধুমাত্র প্রমাণীকৃত পৃষ্ঠ, যেমন মোবাইল ফোন, থেকেই করা উচিত; টিভি-র মতো অপ্রমাণীকৃত ডিভাইস থেকে নয়। এমনটা করলে গুগল হোম ডেভেলপার নীতিমালা লঙ্ঘিত হয়।
একটি ডিভাইস সরান
কোনো ডিভাইস অপসারণের যোগ্য কিনা তা পরীক্ষা করা ব্যয়বহুল এবং শুধুমাত্র প্রয়োজন হলেই তা করা উচিত। কোনো ডিভাইস অপসারণের যোগ্য কিনা তা পরীক্ষা করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
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!") }