การเชื่อมตัวเลือกการแจ้งเตือน

โดยค่าเริ่มต้น ระบบจะบริดจ์หรือแชร์การแจ้งเตือนจากแอปโทรศัพท์ไปยัง นาฬิกาที่จับคู่ไว้ หากคุณสร้างแอปสมาร์ทวอทช์และแอปของคุณมีอยู่ในโทรศัพท์ที่จับคู่ด้วย ผู้ใช้อาจได้รับการแจ้งเตือนซ้ำ 2 รายการ ได้แก่ รายการที่แอปโทรศัพท์สร้างและบริดจ์ และรายการที่แอปสมาร์ทวอทช์สร้าง Wear OS มี ฟีเจอร์สำหรับควบคุมวิธีและเวลาในการส่งต่อการแจ้งเตือน

หลีกเลี่ยงการแจ้งเตือนที่ซ้ำกัน

เมื่อสร้างการแจ้งเตือนจากแหล่งที่มาภายนอก เช่น จาก Firebase Cloud Messaging แอปโทรศัพท์และแอปสมาร์ทวอทช์จะแสดงการแจ้งเตือนของตัวเอง บนนาฬิกาได้ หากไม่ต้องการให้มีการแจ้งเตือนซ้ำ ให้ปิดใช้การบริดจ์ในแอปสมาร์ทวอทช์โดยอัตโนมัติ

ใช้แท็กบริดจ์

หากต้องการบริดจ์การแจ้งเตือนบางรายการที่แอปโทรศัพท์สร้างขึ้นไปยังนาฬิกา เมื่อติดตั้งแอปสมาร์ทวอทช์ ให้ตั้งค่าแท็กบริดจ์

ตั้งค่าแท็กบริดจ์ในการแจ้งเตือนโดยใช้วิธี 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> ในไฟล์ Manifest ของแอปสมาร์ทวอทช์ ดังที่แสดงใน ตัวอย่างต่อไปนี้

<!-- 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" />

ตั้งค่ารหัสการปิดเพื่อซิงค์การแจ้งเตือนที่คล้ายกัน

เมื่อคุณป้องกันการบริดจ์ด้วยฟีเจอร์โหมดการบริดจ์ ระบบจะไม่ซิงค์การปิดการแจ้งเตือนในอุปกรณ์ของผู้ใช้

อย่างไรก็ตาม หากมีการสร้างการแจ้งเตือนที่คล้ายกันทั้งในโทรศัพท์และนาฬิกา คุณอาจต้องการให้ระบบปิดการแจ้งเตือนทั้ง 2 รายการเมื่อผู้ใช้ปิดการแจ้งเตือนรายการใดรายการหนึ่ง

ใน 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 และแอปโทรศัพท์ที่สร้างการแจ้งเตือนทั้งคู่ อย่าใช้วิธีนี้เพื่อหลีกเลี่ยงการแจ้งเตือนที่ซ้ำกัน แต่ให้ใช้ตัวเลือกการเชื่อมต่อ แทน

ตัวอย่างเช่น ใช้การแจ้งเตือนแบบเฉพาะในเครื่องเมื่อผู้ใช้ดาวน์โหลดไฟล์ในโทรศัพท์ และการแจ้งเตือนระบุว่าการดาวน์โหลดเสร็จสมบูรณ์แล้ว

เมื่อไม่มีการเชื่อมต่อการแจ้งเตือน

ระบบจะไม่เชื่อมต่อการแจ้งเตือนประเภทต่อไปนี้

ข้อควรพิจารณาในการติดตั้งใช้งานสำหรับการแจ้งเตือนที่เชื่อม

ระบบจะใช้เวลาในการพุชหรือนำการแจ้งเตือนที่บริดจ์จากอุปกรณ์ที่สวมใส่ได้ออก ขณะออกแบบการแจ้งเตือน โปรดหลีกเลี่ยงลักษณะการทำงานที่ไม่คาดคิดซึ่งเกิดจากเวลาในการตอบสนองนี้ หลักเกณฑ์ต่อไปนี้จะช่วยให้มั่นใจว่าการแจ้งเตือนที่บริดจ์จะทำงานกับการแจ้งเตือนแบบอะซิงโครนัส

  • หากยกเลิกการแจ้งเตือนในโทรศัพท์ ระบบอาจใช้เวลาสักครู่ในการยกเลิก การแจ้งเตือนที่เกี่ยวข้องในนาฬิกา ในระหว่างนี้ ผู้ใช้ อาจส่งหนึ่งใน PendingIntent ในการแจ้งเตือนนั้น ด้วยเหตุนี้ คุณจึงยังคงได้รับ PendingIntent ในแอปจากการแจ้งเตือนที่ระบบยกเลิก เมื่อยกเลิกการแจ้งเตือน ให้เก็บตัวรับ PendingIntent ของการแจ้งเตือนเหล่านั้นไว้ให้ถูกต้อง
  • อย่ายกเลิกและทริกเกอร์การแจ้งเตือนทั้งหมดอีกครั้งพร้อมกัน แก้ไขหรือนำการแจ้งเตือนที่ได้รับการแก้ไขจริงออกเท่านั้น ซึ่งจะหลีกเลี่ยงเวลาในการตอบสนองในการอัปเดตอุปกรณ์ที่สวมใส่ได้และลดผลกระทบของแอปต่ออายุการใช้งานแบตเตอรี่

ข้อควรพิจารณาในการออกแบบ

การแจ้งเตือนของ Wear OS มีหลักเกณฑ์การออกแบบของตัวเอง ดูข้อมูลเพิ่มเติมได้ที่หลักเกณฑ์การออกแบบ Wear OS