خيارات بمجموعة إعدادات الإشعارات

بشكل تلقائي، يقوم النظام بعرض إشعارات التطبيق، أو مشاركتها، من تطبيق على الهاتف مع أي ساعات مقترنة. إذا أنشأت تطبيق ساعة ذكية وكان تطبيقك متاحًا أيضًا على هاتف مقترن، قد يتلقّى المستخدمون إشعارات مكرّرة، أحدها ينشئه تطبيق الهاتف ويُرسله، والآخر ينشئه تطبيق الساعة. تتضمّن Wear OS ميزات للتحكّم في كيفية نقل الإشعارات ووقت نقلها.

تجنُّب الإشعارات المكرّرة

عند إنشاء إشعارات من مصدر خارجي، مثل مراسلة Firebase السحابية، يمكن لتطبيق الهاتف وتطبيق ساعة ذكية عرض إشعاراتهما الخاصة على الساعة. لتجنُّب التكرار، عليك إيقاف عرض إشعارات التطبيق (على الساعة) آليًا في تطبيق ساعة ذكية.

استخدام علامات الربط

لربط بعض الإشعارات التي ينشئها تطبيق الهاتف بالساعة عند تثبيت تطبيق ساعة ذكية، اضبط علامات الربط.

اضبط علامة ربط على إشعار باستخدام طريقة setBridgeTag(String) كما هو موضّح في عيّنة تعليمات برمجية التالية:

val notification = NotificationCompat.Builder(context, channelId)
    // ... set other fields ...
    .extend(
        NotificationCompat.WearableExtender()
            .setBridgeTag("tagOne")
    )
    .build()

إيقاف ميزة المشاركة

يمكنك إيقاف الربط لبعض الإشعارات أو لجميعها. ننصحك بإيقاف الربط بشكل انتقائي.

إيقاف الربط لبعض الإشعارات فقط

يمكنك إيقاف عرض إشعارات التطبيق (على الساعة) ديناميكيًا، ويمكنك اختياريًا السماح بمرور بعض الإشعارات استنادًا إلى علاماتها. على سبيل المثال، لإيقاف عرض إشعارات التطبيق (على الساعة) لجميع الإشعارات باستثناء تلك التي تم وضع علامة tagOne أو tagTwo أو tagThree عليها، استخدِم العنصر BridgingConfig كما هو موضّح في المثال التالي:

// In this example, bridging is only enabled for tagOne, tagTwo and tagThree.
BridgingManager.fromContext(context).setConfig(
    BridgingConfig.Builder(context, isBridgingEnabled = false)
        .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree"))
        .build()
)

إيقاف الربط لجميع الإشعارات (لا يُنصح بذلك)

لمنع عرض إشعارات التطبيق (على الساعة) لجميع الإشعارات من تطبيق الهاتف، استخدِم الإدخال <meta-data> في ملف البيان لتطبيق ساعة ذكية، كما هو موضّح في المثال التالي:

<!-- Beware, this can have unintended consequences before the user is signed-in -->
<meta-data
    android:name="com.google.android.wearable.notificationBridgeMode"
    android:value="NO_BRIDGING" />

ضبط معرّف إغلاق لمزامنة الإشعارات المشابهة

عند منع الربط باستخدام ميزة "وضع الربط"، لن تتم مزامنة عمليات تجاهل الإشعارات على أجهزة المستخدم.

ومع ذلك، إذا تم إنشاء إشعارات مشابهة على كل من الهاتف والساعة، من المفترض أن يتم إغلاق كلا الإشعارين عندما يغلق المستخدم أيًا منهما.

في NotificationCompat.WearableExtender، يمكنك ضبط معرّف فريد عام، بحيث عندما يتجاهل أحد المستخدمين إشعارًا، يتم أيضًا تجاهل الإشعارات الأخرى التي تحمل المعرّف نفسه على الساعات المقترنة.

تتضمّن الفئة NotificationCompat.WearableExtender طرقًا تتيح لك استخدام معرّفات الرفض، كما هو موضّح في المثال التالي:

عندما يرفض المستخدم الإشعار، سيتم رفض جميع الإشعارات الأخرى التي تحمل معرّف الرفض نفسه على الساعة والهاتف. لاسترداد معرّف رفض، استخدِم getDismissalId().

في المثال التالي، تم تحديد معرّف فريد عالميًا لإشعار جديد، وبالتالي تتم مزامنة عمليات الرفض:

val notification = NotificationCompat.Builder(context, channelId)
    // ... set other fields ...
    .extend(
        NotificationCompat.WearableExtender()
            .setDismissalId("abc123")
    )
    .build()

الإشعارات المحلية فقط

لمنع تلقّي إشعارات مكرَّرة، يمكنك أيضًا استخدام setLocalOnly() لجعل الإشعارات محلية على الهاتف.

ومع ذلك، لا تستخدِم هذه الطريقة إلا إذا كان يجب أن يظهر الإشعار فقط على الجهاز الذي أنشأه. ويشمل ذلك أجهزة Wear OS والأجهزة الأخرى القابلة للارتداء وأي أجهزة أخرى متصلة. لا يمكن ربط الإشعارات التي تظهر على الجهاز المحلي فقط، حتى إذا لم يكن تطبيقك مثبّتًا على الساعة.

عند إنشاء تطبيق Wear OS وتطبيق هاتف ينشئان إشعارات، لا تستخدِم هذه الطريقة لتجنُّب الإشعارات المكرَّرة. يمكنك بدلاً من ذلك استخدام خيارات الربط.

على سبيل المثال، استخدِم إشعارًا محليًا فقط عندما ينزّل المستخدم ملفًا على هاتف ويشير الإشعار إلى اكتمال عملية التنزيل.

الحالات التي لا يتم فيها ربط الإشعارات

لا يربط النظام بين أنواع الإشعارات التالية:

اعتبارات التنفيذ للإشعارات التي تم ربطها

يستغرق إرسال الإشعارات التي تم ربطها أو إزالتها من جهاز قابل للارتداء بعض الوقت. عند تصميم الإشعارات، تجنَّب السلوك غير المتوقّع الناتج عن هذا التأخير. تساعد الإرشادات التالية في ضمان عمل الإشعارات التي تم ربطها مع الإشعارات غير المتزامنة:

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

اعتبارات التصميم

تتضمّن إشعارات Wear OS إرشادات تصميم خاصة بها. لمزيد من المعلومات، راجِع إرشادات تصميم Wear OS.