โดยค่าเริ่มต้น ระบบจะเชื่อมโยงหรือแชร์การแจ้งเตือนจากแอปในโทรศัพท์ไปยังนาฬิกาที่จับคู่ไว้ ถ้า คุณสร้างแอปสมาร์ทวอทช์และแอปของคุณก็อยู่ในโทรศัพท์ที่จับคู่แล้ว ผู้ใช้อาจได้รับเนื้อหาที่ซ้ำกัน การแจ้งเตือน 1 รายการสร้างขึ้นและเชื่อมต่อโดยแอปโทรศัพท์ และอีกรายการหนึ่งสร้าง จากแอปสมาร์ทวอทช์ 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
ตามที่แสดงในตัวอย่างต่อไปนี้
BridgingManager.fromContext(context).setConfig( BridgingConfig.Builder(context, false) .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree")) .build() )
ปิดใช้การบริดจ์สำหรับการแจ้งเตือนทั้งหมด (ไม่แนะนำ)
หมายเหตุ: ไม่แนะนำให้ปิดใช้การบริดจ์สำหรับการแจ้งเตือนทั้งหมด เนื่องจาก การกำหนดค่าการบริดจ์ที่ตั้งค่าไว้ในไฟล์ Manifest จะมีผลทันทีที่มีการติดตั้งแอปสมาร์ทวอทช์ ซึ่งอาจทำให้การแจ้งเตือนสูญหายหากผู้ใช้ต้องเปิดและตั้งค่าแอปสมาร์ทวอทช์ ก่อนที่จะได้รับการแจ้งเตือน
เพื่อป้องกันการบริดจ์การแจ้งเตือนทั้งหมดจาก
แอปโทรศัพท์ ให้ใช้รายการ <meta-data>
ในไฟล์ Manifest ของแอปสมาร์ทวอทช์ตามที่แสดงในตัวอย่างต่อไปนี้
<application> ... <!-- Beware, this can have unintended consqequences before the user is signed-in --> <meta-data android:name="com.google.android.wearable.notificationBridgeMode" android:value="NO_BRIDGING" /> ... </application>
หมายเหตุ: การระบุการกำหนดค่าการบริดจ์ที่รันไทม์จะลบล้างการบริดจ์ที่เกี่ยวข้องกับการบริดจ์ ในไฟล์ Manifest ของ Android
กำหนดรหัสการปิดเพื่อซิงค์การแจ้งเตือนที่คล้ายกัน
เมื่อคุณป้องกันการเชื่อมกับฟีเจอร์โหมดบริดจ์ การปิดการแจ้งเตือนจะไม่เกิดขึ้น ที่ซิงค์ในอุปกรณ์ต่างๆ ของผู้ใช้
อย่างไรก็ตาม หากมีการแจ้งเตือนที่คล้ายกันทั้งบนอุปกรณ์เคลื่อนที่และนาฬิกา คุณควรใช้ทั้ง 2 อย่างนี้ การแจ้งเตือนให้ปิดเมื่อผู้ใช้ปิดการแจ้งเตือนรายการใดรายการหนึ่ง
ใน
NotificationCompat.WearableExtender
,
คุณจะตั้งค่ารหัสส่วนกลางที่ไม่ซ้ำกันได้ เพื่อที่ว่าเมื่อปิดการแจ้งเตือน
ที่มีรหัสเดียวกันในนาฬิกาที่จับคู่ไว้ก็ปิดไปด้วย
NotificationCompat.WearableExtender
มีเมธอดที่ให้คุณใช้รหัสการปิดได้ดังตัวอย่างต่อไปนี้
fun setDismissalId(dismissalId: String): WearableExtender fun getDismissalId(): String
หากต้องการซิงค์การปิด ให้ใช้
setDismissalId()
สำหรับการแจ้งเตือนแต่ละรายการ ให้ส่งรหัสที่ไม่ซ้ำกันทั่วโลกเป็นสตริงเมื่อคุณเรียกใช้
setDismissalId()
วิธี
เมื่อปิดการแจ้งเตือน การแจ้งเตือนอื่นๆ ทั้งหมดที่มีรหัสการปิดการแจ้งเตือนเดียวกัน
ปิดบนนาฬิกาและในโทรศัพท์ หากต้องการเรียกดูรหัสการปิด ให้ใช้
getDismissalId()
ในตัวอย่างต่อไปนี้ รหัสที่ไม่ซ้ำกันทั่วโลกคือ ระบุสำหรับการแจ้งเตือนใหม่ เพื่อให้ซิงค์การปิด
val notification = NotificationCompat.Builder(context, channelId) // Set other fields ... .extend( NotificationCompat.WearableExtender() .setDismissalId("abc123") ) .build()
หมายเหตุ: รหัสสำหรับปิดจะใช้ได้หากนาฬิกาจับคู่กับโทรศัพท์ Android แต่ไม่ได้จับคู่กับนาฬิกา จับคู่กับ iPhone แล้ว
เมื่อไม่ได้เชื่อมการแจ้งเตือน
การแจ้งเตือนประเภทต่อไปนี้จะไม่ได้รับการเชื่อมต่อ
- ตั้งค่าการแจ้งเตือนในพื้นที่เท่านั้นโดยใช้
Notification.Builder.setLocalOnly(boolean)
- ตั้งค่าการแจ้งเตือนต่อเนื่องโดยใช้
Notification.Builder.setOngoing(boolean)
หรือNotification.FLAG_ONGOING_EVENT
- การแจ้งเตือนที่ล้างไม่ได้ที่ตั้งค่าโดยใช้
Notification.FLAG_NO_CLEAR
- การแจ้งเตือนที่แอปสำหรับอุปกรณ์ที่สวมใส่ได้ของอีกฝ่ายหนึ่ง ปิดใช้การบริดจ์การแจ้งเตือนตามที่อธิบายไว้ก่อนหน้านี้
แนวทางปฏิบัติแนะนำสำหรับการแจ้งเตือนที่เชื่อมโยง
การพุชหรือนำการแจ้งเตือนที่เชื่อมออกจากอุปกรณ์ที่สวมใส่ได้ต้องใช้เวลาสักพัก อุปกรณ์ ขณะออกแบบการแจ้งเตือน โปรดหลีกเลี่ยงกิจกรรมที่ไม่คาดคิด ที่เกิดจากเวลาในการตอบสนองนี้ หลักเกณฑ์ต่อไปนี้มีประโยชน์ ตรวจสอบว่าการแจ้งเตือนแบบบริดจ์ทำงานร่วมกับการแจ้งเตือนแบบไม่พร้อมกัน
- หากคุณยกเลิกการแจ้งเตือนในโทรศัพท์ ระบบอาจใช้เวลาสักครู่ในการยกเลิก การแจ้งเตือนที่เกี่ยวข้องบนนาฬิกา ในระหว่างนี้ ผู้ใช้อาจส่งข้อความ Intent ที่รอดำเนินการในการแจ้งเตือนนั้น สำหรับกรณีนี้ ให้ยังคงได้รับ Intent ที่รอดำเนินการในแอปจากการแจ้งเตือนที่ยกเลิกไปแล้วต่อไป เมื่อยกเลิกการแจ้งเตือน ให้เก็บผู้รับ Intent ที่รอดำเนินการของการแจ้งเตือนเหล่านั้นไว้ ใช้ได้
- อย่ายกเลิกและเรียกกลุ่มการแจ้งเตือนทั้งหมดอีกครั้งในคราวเดียว แก้ไขหรือลบเฉพาะการแจ้งเตือนที่ถูกแก้ไขจริงๆ เท่านั้น ซึ่งจะหลีกเลี่ยงเวลาในการตอบสนองขณะอัปเดตอุปกรณ์ที่สวมใส่ได้ และลด ผลกระทบที่แอปมีต่ออายุการใช้งานแบตเตอรี่
ข้อควรพิจารณาในการออกแบบ
การแจ้งเตือน Wear OS มีหลักเกณฑ์ในการออกแบบของตัวเอง สำหรับข้อมูลเพิ่มเติม อ่านหลักเกณฑ์การออกแบบของ Wear OS