การแจ้งเตือนในนาฬิกาใช้ API เดียวกันและมีโครงสร้างเดียวกันกับการแจ้งเตือนในโทรศัพท์
การแจ้งเตือนจะปรากฏบนนาฬิกาได้ 2 วิธีดังนี้
- แอปบนอุปกรณ์เคลื่อนที่จะสร้างการแจ้งเตือนและระบบจะเชื่อมต่อการแจ้งเตือนนั้นกับนาฬิกาโดยอัตโนมัติ
- แอปสำหรับอุปกรณ์สวมใส่จะสร้างการแจ้งเตือน
สำหรับทั้ง 2 สถานการณ์ ให้ใช้คลาส
NotificationCompat.Builder
เพื่อสร้างการแจ้งเตือน เมื่อสร้างการแจ้งเตือนด้วยคลาส Builder ระบบจะ
ดูแลการแสดงการแจ้งเตือนอย่างเหมาะสม เช่น เมื่อคุณส่งการแจ้งเตือนจาก
แอปบนอุปกรณ์เคลื่อนที่ การแจ้งเตือนแต่ละรายการจะปรากฏเป็นการ์ดในสตรีมการแจ้งเตือน
ดูตัวอย่างต่อไปนี้เพื่อดูว่าการแจ้งเตือนจะแสดงอย่างไร
รูปที่ 1 การแจ้งเตือนเดียวกันที่แสดงบนโทรศัพท์และนาฬิกา
ใช้คลาสย่อยรายการใดรายการหนึ่งต่อไปนี้NotificationCompat.Style
เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด
หมายเหตุ:
การใช้ RemoteViews
จะนำเลย์เอาต์ที่กำหนดเองออกจากข้อความแจ้ง และอุปกรณ์ที่สวมใส่ได้จะแสดงเฉพาะข้อความและไอคอน
การแจ้งเตือนที่แนะนำสำหรับอุปกรณ์ที่สวมใส่ได้
ใช้การแจ้งเตือนที่ขยายได้เป็นจุดเริ่มต้นสำหรับการแจ้งเตือนทั้งหมด เนื่องจากเป็นวิธีที่ยอดเยี่ยมในการดึงดูดผู้ใช้ที่สวมใส่อุปกรณ์ สถานะที่ยุบจะแสดงในถาดการแจ้งเตือน เพื่อให้ดูได้อย่างรวดเร็ว หากผู้ใช้แตะการแจ้งเตือน การแจ้งเตือนจะขยายออก เผยให้เห็นประสบการณ์การใช้งานที่สมจริงและเลื่อนได้ของเนื้อหาและการดำเนินการเพิ่มเติม
คุณสร้างการแจ้งเตือนที่ขยายได้
ในลักษณะเดียวกับที่ทำในอุปกรณ์เคลื่อนที่ โดยใช้คลาสย่อยใดก็ได้ของ NotificationCompat.Style
ตัวอย่างเช่น การแจ้งเตือนมาตรฐานที่ใช้
NotificationCompat.MessagingStyle
จะมีลักษณะดังนี้
รูปที่ 2 ตัวอย่างMessagingStyleการแจ้งเตือนใน Wear OS
คุณจะเห็นว่าการแจ้งเตือนมีการดำเนินการหลายรายการซ้อนกันอยู่ที่ด้านล่างของสถานะที่ขยาย
เคล็ดลับ: หากการแจ้งเตือนมีการดำเนินการ "ตอบกลับ" เช่น สำหรับแอปส่งข้อความ
คุณจะเพิ่มประสิทธิภาพลักษณะการทำงานของการแจ้งเตือนได้ เช่น คุณสามารถเปิดใช้การป้อนด้วยเสียง
ตอบกลับได้โดยตรงจากอุปกรณ์ที่สวมใส่ หรือใช้ข้อความตอบกลับที่กำหนดไว้ล่วงหน้าด้วย
setChoices()
ดูข้อมูลเพิ่มเติมได้ที่
เพิ่มปุ่มตอบกลับ
หลีกเลี่ยงการแจ้งเตือนที่ซ้ำกัน
โดยค่าเริ่มต้น ระบบจะบริดจ์การแจ้งเตือนจากแอปโทรศัพท์ที่ใช้ร่วมกันไปยังนาฬิกาที่จับคู่ไว้ ซึ่งเป็นตัวเลือกที่ยอดเยี่ยมหากคุณไม่ได้ติดตั้งแอปบนอุปกรณ์ที่สวมใส่ได้
อย่างไรก็ตาม หากคุณสร้างแอปนาฬิกาแบบสแตนด์อโลนและแอปโทรศัพท์ที่ใช้ร่วมกัน แอปจะสร้างการแจ้งเตือนที่ซ้ำกัน
Wear OS มีวิธีหยุดการแจ้งเตือนที่ซ้ำกันด้วย Bridging API ซึ่งมีความสำคัญเป็นอย่างยิ่งสำหรับแอปในอุปกรณ์ที่ใช้ Wear OS 5 ขึ้นไป เนื่องจาก การแจ้งเตือนบางอย่างที่ปิดได้ในอุปกรณ์เคลื่อนที่จะปิดไม่ได้ในอุปกรณ์ Wear OS ดูข้อมูลเพิ่มเติมได้ที่ตัวเลือกการเชื่อมต่อสำหรับการแจ้งเตือน
เพิ่มฟีเจอร์เฉพาะสำหรับอุปกรณ์ที่สวมใส่ได้ในการแจ้งเตือน
หากต้องการเพิ่มฟีเจอร์เฉพาะสำหรับอุปกรณ์ที่สวมใส่ได้ในการแจ้งเตือน คุณสามารถใช้คลาส
NotificationCompat.WearableExtender เพื่อระบุตัวเลือกได้
หากต้องการใช้ API นี้ ให้ทำดังนี้
หมายเหตุ:
หากคุณใช้ NotificationManager ของเฟรมเวิร์ก
ฟีเจอร์บางอย่างจาก
NotificationCompat.WearableExtender จะไม่ทำงาน ดังนั้นโปรดใช้
NotificationCompat
ตัวอย่างนี้แสดงวิธีตั้งค่าการดำเนินการเฉพาะ Wear ในการแจ้งเตือนและตั้งค่า
รหัสการยกเลิก เมื่อปิดการแจ้งเตือนแล้ว การแจ้งเตือนอื่นๆ ทั้งหมดที่มีรหัสการปิดเดียวกันจะถูกปิดบนนาฬิกาและโทรศัพท์คู่กัน หากต้องการดึงข้อมูลรหัสการยกเลิก
ให้ใช้
getDismissalId()
// This intent will be fired as a result of the user clicking the "Open on watch" action. // However, it executes on the phone, not on the watch. Typically, the Activity should then use // RemoteActivityHelper to then launch the correct activity on the watch. val intent = Intent(context, LaunchOnWearActivity::class.java) val wearPendingIntent = PendingIntent.getActivity( context, wearRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) val openOnWatchAction = NotificationCompat.Action.Builder( R.drawable.watch, "Open on watch", wearPendingIntent ) .build() val wearableExtender = NotificationCompat.WearableExtender() // This action will only be shown on the watch, not on the phone. // Actions added to the Notification builder directly will not be shown on the watch, // because one or more actions are defined in the WearableExtender. .addAction(openOnWatchAction) // This synchronizes dismissals between watch and phone. .setDismissalId(chatId) val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend(wearableExtender) .build()
เปิดแอปโทรศัพท์จากอุปกรณ์ที่สวมใส่ได้
หากคุณใช้การแจ้งเตือนที่เชื่อมต่อแล้ว การแจ้งเตือนใดๆ จะมีปุ่มเปิดแอปในโทรศัพท์โดยอัตโนมัติ แต่หากคุณใช้การแจ้งเตือนในเครื่องที่สร้างบนนาฬิกา ให้ทำตามขั้นตอนต่อไปนี้เพื่อสร้างปุ่มที่เปิดแอปในโทรศัพท์
- สร้าง
Activityใหม่ที่ขยายConfirmationActivity - ใช้
RemoteActivityHelperในActivityใหม่เพื่อเปิดแอปโทรศัพท์ - เมื่อสร้าง
Intentเพื่อเปิดใช้Activityจากการแจ้งเตือน ให้ตั้งค่าEXTRA_ANIMATION_TYPEเพิ่มเติมเป็นOPEN_ON_PHONE_ANIMATION
หมายเหตุ: คุณใช้ BroadcastReceiver เป็นเป้าหมาย
ของการดำเนินการแจ้งเตือนไม่ได้