إزالة جهاز

تتضمّن إزالة جهاز إيقافه نهائيًا من البنية. يمكن للمستخدم إجراء ذلك باستخدام Google Home app (GHA)، ويمكن للتطبيق إيقاف جهاز منزلي ذكي آليًا. هناك قيود على الأجهزة التي يمكن إزالتها. بالإضافة إلى ذلك، يمكن أن تؤثر إزالة جهاز في بنية تطبيقك وتجارب المستخدمين.

المحتوى الذي يمكنك إزالته

يمكنك إزالة الأجهزة التالية آليًا من خلال واجهات برمجة التطبيقات Home:

  • Matter جهاز حصل تطبيقك على أذونات الوصول إلى بياناته
  • يمكن استخدام جسور Matter، شرط أن يتمكّن تطبيقك من الوصول إلى جميع الأجهزة المتصلة من خلال الجسر. عند إزالة الجسر، ستتم إزالة جميع أجهزة Matter المتصلة به.

ما لا يمكنك إزالته

لا يمكن إزالة الأجهزة التالية آليًا من خلال واجهات برمجة التطبيقات Home:

  • Matter جهازًا لا يملك تطبيقك أذونات المستخدمين الخاصة به.
  • الأجهزة الفردية المتصلة من خلال جسر Matter
  • Cloud-to-cloud جهاز مرتبط
  • الأجهزة ذات المسار المزدوج (الأجهزة التي تنفّذ كلاً من Matter وCloud-to-cloud)

اعتبارات مهمة قبل إزالة جهاز

عندما يزيل تطبيقك جهازًا، تتم إزالته من البنية بأكملها، ما يؤثر في جميع المستخدمين وجميع التطبيقات، بما في ذلك GHA. قد تترتّب آثار جانبية إضافية على إيقاف جهاز نهائيًا، وذلك حسب نوع الجهاز:

  • الأجهزة التي تنفّذ أنواعًا متعددة من الأجهزة: إذا كان الجهاز يتضمّن وظائف متعددة، مثل مصباح ذكي يعمل أيضًا كمركز، ستؤدي إزالته إلى إزالة جميع الأجهزة المرتبطة به. يجب أن يخبر التطبيق المستخدم إذا كان سيتم التأثير في وظائف متعددة للجهاز.
  • سجلّ الجهاز: قد يؤدي حذف جهاز إلى إزالة سجلّه.
  • مساحات العرض المشتركة: عليك توخّي الحذر عند حذف أجهزة من مساحات العرض المشتركة، لأنّ ذلك قد يؤدي إلى عواقب غير مقصودة بالنسبة إلى المستخدمين الآخرين.
  • المصادقة: يجب إزالة الأجهزة من خلال واجهات تمت المصادقة عليها فقط، مثل الهاتف الجوّال، وليس من خلال أجهزة لم تتم المصادقة عليها، مثل أجهزة التلفزيون. ويُعدّ ذلك انتهاكًا لسياسات المطوّرين في Google Home.

إزالة جهاز

إنّ التحقّق من أهلية الجهاز للإزالة أمر مكلف ويجب إجراؤه فقط عند الضرورة. للتحقّق مما إذا كان الجهاز مؤهلاً للإزالة، استخدِم الأمر التالي:

swift let eligibility = try await device.decommissionEligibility

أجهزة متوافقة مع معيار Matter

يمكنك إزالة جهاز Matter آليًا إذا لم يكن الجهاز متصلاً بجهاز Matter.

لإزالة جهاز Matter، اتّبِع الخطوات التالية:decommission()

swift let decommissionedDeviceIDs = try await device.decommission()

إذا لم يعرض الاتصال خطأ، يعني ذلك أنّه نجح.

يمكنك التحقّق مما إذا كان معرّف الجهاز من بين المعرّفات التي تعرضها decommission() باتّباع الخطوات التالية:

swift do { let decommissionedDeviceIDs = try await device.decommission() print("The following devices were decommissioned: \(decommissionedDeviceIDs)") } catch { print("An error occurred: \(error)") }

الأجهزة غير المتوافقة مع معيار Matter

لا يمكن إزالة الأجهزة التي لا تحمل العلامة Matter آليًا. لإزالة جهاز غير Matter، يمكنك إرسال طلب مزامنة (راجِع طلب المزامنة) أو حذف عملية الربط Cloud-to-cloud (راجِع حذف عملية ربط تم إطلاقها من السحابة الإلكترونية إلى السحابة الإلكترونية).

إذا اتصلت بـ decommission() على جهاز غير Matter، سيتم عرض HomeError.

بعد إزالة جهاز غير Matter، تحقَّق من عدم توفّره للتأكّد من أنّه تمت إزالته بنجاح:

swift guard try await !self.context.devices().list().contains(where: { $0.id == deviceID }) else { // The device still exists in Home APIs }