โดยค่าเริ่มต้น ระบบจะบริดจ์หรือแชร์การแจ้งเตือนจากแอปในโทรศัพท์ไปยังนาฬิกาที่จับคู่ไว้ หาก คุณสร้างแอปนาฬิกาและแอปของคุณมีอยู่ในโทรศัพท์ที่จับคู่ด้วย ผู้ใช้อาจได้รับการแจ้งเตือนซ้ำ โดยการแจ้งเตือนหนึ่งสร้างและบริดจ์โดยแอปโทรศัพท์ และอีกหนึ่งสร้าง โดยแอปนาฬิกา 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() )
ปิดใช้การเชื่อมสำหรับการแจ้งเตือนทั้งหมด (ไม่แนะนำ)
หมายเหตุ: เราไม่แนะนำให้ปิดใช้การเชื่อมโยงสำหรับการแจ้งเตือนทั้งหมด เนื่องจาก การกำหนดค่าการเชื่อมโยงที่ตั้งค่าไว้ในไฟล์ Manifest จะมีผลทันทีที่ติดตั้งแอปนาฬิกา ซึ่งอาจทำให้การแจ้งเตือนสูญหายหากผู้ใช้ต้องเปิดและตั้งค่าแอปนาฬิกา ก่อนที่จะได้รับการแจ้งเตือน
หากต้องการป้องกันการส่งต่อการแจ้งเตือนทั้งหมดจากแอปโทรศัพท์ ให้ใช้รายการ <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" />
หมายเหตุ: การระบุการกำหนดค่าการเชื่อมต่อที่รันไทม์จะลบล้างการตั้งค่าที่เกี่ยวข้องกับการเชื่อมต่อ ในไฟล์ Manifest ของ Android
ตั้งค่ารหัสการปิดเพื่อซิงค์การแจ้งเตือนที่คล้ายกัน
เมื่อป้องกันการเชื่อมต่อด้วยฟีเจอร์โหมดการเชื่อมต่อ ระบบจะไม่ซิงค์การปิดการแจ้งเตือนในอุปกรณ์ของผู้ใช้
อย่างไรก็ตาม หากมีการสร้างการแจ้งเตือนที่คล้ายกันทั้งในอุปกรณ์เคลื่อนที่และนาฬิกา คุณอาจต้องการให้ระบบปิดการแจ้งเตือนทั้ง 2 รายการเมื่อผู้ใช้ปิดการแจ้งเตือนรายการใดรายการหนึ่ง
ใน
NotificationCompat.WearableExtender
คุณสามารถตั้งค่ารหัสที่ไม่ซ้ำกันทั่วโลกเพื่อให้เมื่อมีการปิดการแจ้งเตือน การแจ้งเตือนอื่นๆ
ที่มีรหัสเดียวกันในนาฬิกาที่จับคู่ไว้จะถูกปิดด้วย
คลาส
NotificationCompat.WearableExtender
มีเมธอดที่ช่วยให้คุณใช้รหัสการปิดได้ ดังที่แสดงในตัวอย่างต่อไปนี้
เมื่อการแจ้งเตือนปิด การแจ้งเตือนอื่นๆ ทั้งหมดที่มีรหัสการปิดเดียวกันจะปิดในนาฬิกาและโทรศัพท์ด้วย
หากต้องการเรียกข้อมูลรหัสการยกเลิก ให้ใช้
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 ที่รอดำเนินการในการแจ้งเตือนนั้น ด้วยเหตุนี้ โปรดรับ PendingIntent ในแอปต่อไปจากการแจ้งเตือนที่ยกเลิก เมื่อยกเลิกการแจ้งเตือน ให้เก็บตัวรับ PendingIntent ของการแจ้งเตือนเหล่านั้น ไว้
- อย่ายกเลิกและทริกเกอร์การแจ้งเตือนทั้งหมดอีกครั้งพร้อมกัน แก้ไขหรือนำการแจ้งเตือนที่ได้รับการแก้ไขจริงออกเท่านั้น ซึ่งจะช่วยหลีกเลี่ยงเวลาในการตอบสนองในการอัปเดตอุปกรณ์ที่สวมใส่ได้และลดผลกระทบของแอปต่ออายุการใช้งานแบตเตอรี่
ข้อควรพิจารณาในการออกแบบ
การแจ้งเตือนของ Wear OS มีหลักเกณฑ์การออกแบบของตัวเอง ดูข้อมูลเพิ่มเติมได้ที่หลักเกณฑ์การออกแบบ Wear OS