تتضمّن إزالة جهاز إيقافه نهائيًا من البنية. يمكن للمستخدم إجراء ذلك باستخدام 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
}