การแจ้งเตือนใน Android Automotive OS

การแจ้งเตือนจะให้ข้อมูลสั้นๆ ที่ทันท่วงทีเกี่ยวกับเหตุการณ์จากแอปของคุณแก่คนขับขณะที่ไม่ได้ใช้งานแอป การแจ้งเตือนจะปรากฏในศูนย์การแจ้งเตือน และการแจ้งเตือนบางรายการจะปรากฏเป็นการแจ้งเตือนแบบลอยบนจอแสดงผลด้วย หากต้องการสร้างการแจ้งเตือนสำหรับ Android Automotive OS คุณต้องใช้ NotificationBuilder API เดียวกัน กับที่ใช้สำหรับอุปกรณ์อื่นๆ อย่างไรก็ตาม เมธอดและคลาส API บางรายการจะถูกจำกัดหรือทำงานแตกต่างออกไปเพื่อช่วยให้มั่นใจในความปลอดภัยของผู้ขับขี่และลดสิ่งรบกวน

ความแตกต่างของการแจ้งเตือนในรถยนต์

เพื่อสร้างสภาพแวดล้อมการขับขี่ที่ปลอดภัยและปราศจากสิ่งรบกวน การแจ้งเตือนใน Android Automotive OS จึงแตกต่างจากการแจ้งเตือนในอุปกรณ์อื่นๆ ดังนี้

  • การโต้ตอบกับผู้ใช้ที่ง่ายขึ้น
  • ข้อจำกัด UX ตามสถานะไดรฟ์

การโต้ตอบกับผู้ใช้ที่ง่ายขึ้น

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

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

Android Automotive OS จะเพิ่มปุ่มเล่นและปิดเสียงโดยอัตโนมัติ ในการแจ้งเตือนการรับส่งข้อความที่ใช้ได้กับรถยนต์ทั้งหมด

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

ตัวเลือกการแสดงการแจ้งเตือนที่ง่ายขึ้น

RemoteViews และมุมมองเนื้อหาที่กําหนดเอง นอกจากนี้ ระบบยังไม่รองรับรูปแบบการแจ้งเตือนต่อไปนี้

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle
  • ProgressStyle

หากแอปส่งการแจ้งเตือนไปยัง Android Automotive OS โดยใช้รูปแบบการแจ้งเตือนใดรูปแบบหนึ่งต่อไปนี้ ระบบจะแสดงเฉพาะข้อความสรุป

การจัดการช่องทางการแจ้งเตือนที่ง่ายขึ้น

Android Automotive OS ไม่รองรับแชแนลการแจ้งเตือนและ UI ที่เกี่ยวข้อง เพื่อลดความแพร่หลายของงานการจัดการที่ซับซ้อนใน อุปกรณ์ยานยนต์

ข้อจำกัด UX ตามสถานะไดรฟ์

Android Automotive OS มีเครื่องมือจำกัด UX ผู้ผลิตรถยนต์สามารถ ใช้เครื่องมือนี้เพื่อจำกัดการแจ้งเตือนตามสถานะการขับขี่ของรถยนต์ได้ ในลักษณะต่อไปนี้

  • การตัดสตริงการแจ้งเตือนที่ความยาวอักขระที่เฉพาะเจาะจง
  • ซ่อนข้อมูลสรุปของข้อความสำหรับการแจ้งเตือน CATEGORY_MESSAGE
  • การจำกัดจำนวนการแจ้งเตือนที่ศูนย์การแจ้งเตือนแสดงได้

ประเภททรัพยากรที่รองรับ

โดยค่าเริ่มต้น Android Automotive OS รองรับชุดย่อยของประเภททรัพยากร ที่ใช้กับการแจ้งเตือนในอุปกรณ์อื่นๆ ได้ ชุดย่อยนี้ประกอบด้วยประเภททรัพยากรต่อไปนี้

  • เนื้อหาที่ถอนออกได้
  • ไอคอน
  • รูปภาพ

ข้อกำหนดความเข้ากันได้สำหรับการแจ้งเตือนการรับส่งข้อความ

การแจ้งเตือนการรับส่งข้อความมีข้อกำหนดพิเศษใน Android Automotive OS เพื่อมอบประสบการณ์ของผู้ใช้ที่สอดคล้องกันและรบกวนน้อยที่สุด

การแจ้งเตือนการรับส่งข้อความจะใช้ได้กับรถยนต์หากเป็นไปตามข้อกำหนดต่อไปนี้

  • โดยจัดอยู่ในหมวดหมู่CATEGORY_MESSAGE
  • ใช้รูปแบบ Notification.MessagingStyle
  • โดยจะรวมเฉพาะข้อความที่ยังไม่อ่าน
  • มีเครื่องหมายว่าอ่านแล้ว Action ที่เป็นไปตามข้อกำหนดต่อไปนี้

    • ตั้งค่าการดำเนินการเชิงความหมายเป็น Action.SEMANTIC_ACTION_MARK_AS_READ
    • Action แสดงว่าไม่แสดงอินเทอร์เฟซผู้ใช้เมื่อทริกเกอร์
  • หากการแจ้งเตือนมีการตอบกลับ Action แสดงว่าActionเป็นไปตามข้อกำหนดต่อไปนี้

    • ตั้งค่าการดำเนินการเชิงความหมายเป็น Action.SEMANTIC_ACTION_REPLY
    • Action แสดงว่าไม่แสดงอินเทอร์เฟซผู้ใช้เมื่อทริกเกอร์
    • Action มี RemoteInput รายการเดียว

ศูนย์การแจ้งเตือน

การแจ้งเตือนเกือบทั้งหมดจะปรากฏในศูนย์การแจ้งเตือน แม้ว่าการแจ้งเตือนเหล่านั้นจะทริกเกอร์เป็นการแจ้งเตือนแบบผุดขึ้นด้วยก็ตาม การแจ้งเตือน จะยังคงอยู่ในศูนย์การแจ้งเตือนตลอดระยะเวลาการเดินทาง

คนขับสามารถโต้ตอบกับการแจ้งเตือนในศูนย์การแจ้งเตือนได้ คนขับจะเข้าถึงศูนย์การแจ้งเตือนได้ด้วยวิธีใดวิธีหนึ่งหรือทั้ง 2 วิธีต่อไปนี้ ทั้งนี้ขึ้นอยู่กับผู้ผลิตรถยนต์

  • ปัดลงจากด้านบนของหน้าจอ คล้ายกับลิ้นชักการแจ้งเตือน ในอุปกรณ์อื่นๆ
  • การแตะปุ่มในอินเทอร์เฟซระบบ

การแจ้งเตือนแบบจัดกลุ่ม

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

การแจ้งเตือนที่ไม่ปรากฏในศูนย์การแจ้งเตือน

การแจ้งเตือนต่อไปนี้จะไม่ปรากฏในศูนย์การแจ้งเตือน

  • Media playback การแจ้งเตือน Android Automotive OS จะรวบรวมข้อมูลเกี่ยวกับการเล่นสื่อที่กำลังดำเนินการอยู่และแสดงในตำแหน่งเฉพาะในอินเทอร์เฟซผู้ใช้ โปรดทราบว่าต้องเรียกใช้ setMediaSession พร้อมโทเค็นที่ไม่ใช่ค่าว่างเพื่อให้ระบบ จดจำการแจ้งเตือนเป็นการเล่นสื่อ
  • การแจ้งเตือนการนำทางแบบเลี้ยวต่อเลี้ยวสำหรับ CATEGORY_NAVIGATION
  • การแจ้งเตือนบริการที่ทำงานอยู่เบื้องหน้าสำหรับแอปที่มีสิทธิ์ของระบบและแอปที่ ลงชื่อด้วยคีย์แพลตฟอร์มซึ่งมีระดับความสำคัญต่ำกว่า IMPORTANCE_DEFAULT

การแจ้งเตือนล่วงหน้า

การแจ้งเตือนล่วงหน้าจะปรากฏเป็นการ์ดการแจ้งเตือนที่ด้านบนของหน้าจอ เนื่องจากการแจ้งเตือนล่วงหน้าจะดึงดูดความสนใจของผู้ขับขี่ ให้ทริกเกอร์การแจ้งเตือนล่วงหน้าเมื่อข้อมูลมีความสำคัญต่อการขับขี่ มีความเร่งด่วน และสามารถนำไปใช้ได้เท่านั้น เฉพาะการแจ้งเตือนบางหมวดหมู่เท่านั้นที่ ทริกเกอร์การแจ้งเตือนแบบลอยได้

ผู้ผลิตรถยนต์สามารถตัดสินใจได้ว่าจะอนุญาตให้การแจ้งเตือนล่วงหน้าปรากฏขณะที่ศูนย์การแจ้งเตือนเปิดอยู่หรือไม่

วิธีที่แอปทริกเกอร์การแจ้งเตือนล่วงหน้า

แอปมีข้อกำหนดที่แตกต่างกันในการทริกเกอร์การแจ้งเตือนแบบผุดขึ้น ขึ้นอยู่กับว่าแอปมีสิทธิ์ของระบบหรือไม่

แอปที่มีสิทธิ์ของระบบและแอปที่ลงนามด้วยคีย์แพลตฟอร์ม
แอปสามารถทริกเกอร์การแจ้งเตือนล่วงหน้าได้โดยตั้งค่าความสำคัญของช่องการแจ้งเตือนเป็น IMPORTANCE_HIGH หรือสูงกว่า
แอปอื่นๆ ทั้งหมด

แอปสามารถทริกเกอร์การแจ้งเตือนล่วงหน้าได้โดยตั้งค่าความสำคัญของแชแนลการแจ้งเตือนเป็น IMPORTANCE_HIGH หรือสูงกว่า และตรวจสอบว่าการแจ้งเตือนอยู่ในหมวดหมู่ใดหมวดหมู่หนึ่งต่อไปนี้

อายุการใช้งานของการแจ้งเตือนล่วงหน้า

หลังจากที่แอปทริกเกอร์การแจ้งเตือนล่วงหน้า การแจ้งเตือนจะปรากฏขึ้นบนหน้าจอของรถทันที หากผู้ขับไม่ดำเนินการใดๆ การแจ้งเตือนแบบป็อปอัปจะปิดโดยอัตโนมัติหลังจากผ่านไป 8 วินาที ยกเว้นในกรณีต่อไปนี้

  • การแจ้งเตือนล่วงหน้าสำหรับสายเรียกเข้าบางสายจะปิดไม่ได้ และ การแจ้งเตือนล่วงหน้าจะยังคงอยู่จนกว่าผู้ขับจะรับสายหรือ สายจะสิ้นสุด การแจ้งเตือนต้องเป็นไปตามข้อกำหนดต่อไปนี้จึงจะมีสิทธิ์เป็นข้อความแจ้งเตือนที่ปิดไม่ได้สำหรับสายเรียกเข้า

  • การแจ้งเตือนล่วงหน้าจะยังคงอยู่หากแอป อัปเดตการแจ้งเตือน ภายในกรอบเวลา 8 วินาที

เมื่อปิดการแจ้งเตือนแบบลอย การแจ้งเตือนจะปรากฏในศูนย์การแจ้งเตือน ยกเว้นการแจ้งเตือนCATEGORY_NAVIGATION

การเปลี่ยนแปลงและการจำกัด Notification API สำหรับรถยนต์

ส่วนนี้จะสรุปความแตกต่างของแต่ละคลาสที่ Notifications API ทำงานแตกต่างกันหรือมีข้อจำกัดสำหรับ Android Automotive OS

Notification.Builder

ตารางที่ 1 และ 2 อธิบายการเปลี่ยนแปลงและการจำกัด API ในคลาส Notification.Builder

ตารางที่ 1 การเปลี่ยนแปลงเมธอดสาธารณะสำหรับ Notification.Builder

เมธอดสาธารณะ เอฟเฟ็กต์ คำอธิบาย

addAction()

ไม่มีการดำเนินการตามเงื่อนไข Notification.MessagingStyle การแจ้งเตือนต้องเพิ่ม การดำเนินการที่ระบุไว้ใน ข้อกำหนดด้านความเข้ากันได้ การดำเนินการเพิ่มเติมที่เพิ่มจะไม่แสดงเป็นปุ่มการแจ้งเตือน

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

ไม่มีการดำเนินการ RemoteViews และมุมมองเนื้อหาที่กําหนดเอง

setBadgeIconType()

setNumber()

ไม่มีการดำเนินการ ระบบไม่รองรับป้ายการแจ้งเตือน

setChronometerCountDown()

setUsesChronometer()

ไม่มีการดำเนินการ ไม่รองรับตัวจับเวลาถอยหลัง
setColorized() เปลี่ยนข้อจำกัดแล้ว

แอปที่แพลตฟอร์มลงนาม: กำหนดค่าได้ อนุญาตโดย ค่าเริ่มต้น

แอปที่มีสิทธิ์ระดับระบบ: กำหนดค่าโดยแพลตฟอร์ม ไม่อนุญาตโดยค่าเริ่มต้น

แอปอื่นๆ ทั้งหมด: แพลตฟอร์มกำหนดค่าไว้ ไม่อนุญาตโดยค่าเริ่มต้น

setFullScreenIntent() เปลี่ยนลักษณะการทำงานแล้ว ไม่เปิด Intent โดยอัตโนมัติ
setLargeIcon() เปลี่ยนลักษณะการทำงานแล้ว ไอคอนขนาดใหญ่จะแสดงทางด้านขวาของการแจ้งเตือน
setLights() ไม่มีการดำเนินการ อุปกรณ์ Android Automotive OS ไม่มีไฟแสดงสถานะ LED
setOngoing() เปลี่ยนลักษณะการทำงานแล้ว

ลักษณะการทำงานจะแตกต่างออกไปเมื่อการแจ้งเตือนยังทริกเกอร์ การแจ้งเตือนล่วงหน้าด้วย

setOngoing() จะทำให้การแจ้งเตือนล่วงหน้าไม่สามารถปิดได้ก็ต่อเมื่อการแจ้งเตือนล่วงหน้า เป็นสายเรียกเข้า หากต้องการมีสิทธิ์เป็นการแจ้งเตือนล่วงหน้าที่ปิดไม่ได้ สำหรับสายเรียกเข้า การแจ้งเตือนต้องเป็นไปตาม setPublicVersion()

setVisibility()

ไม่มีการดำเนินการ ไม่รองรับโหมดส่วนตัว
setSettingsText() ไม่มีการดำเนินการ การแจ้งเตือนไม่รองรับความสามารถที่ลิงก์ไปยังการตั้งค่าแอป โดยคนขับจะเข้าถึงการตั้งค่าแอปผ่านแอปแทน
setTicker() ไม่มีการดำเนินการ ไม่รองรับข้อความแถบเลื่อน

ตารางที่ 2 การเปลี่ยนแปลงเกี่ยวกับชั้นเรียนที่ซ้อนกันสำหรับ Notification.Builder

คลาสที่ซ้อนกัน เอฟเฟ็กต์ คำอธิบาย

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

ไม่ใช้ แสดงเฉพาะข้อความสรุป ระบบไม่รองรับการแจ้งเตือนโดยละเอียดสำหรับสไตล์เหล่านี้
Notification.BubbleMetadata ไม่ใช้ ไม่รองรับฟอง
Notification.MediaStyle ซ่อนอยู่ ระบบจะซ่อนการแจ้งเตือนที่มีสไตล์นี้ Android Automotive OS จัดการ การโต้ตอบกับอินเทอร์เฟซผู้ใช้สำหรับการแจ้งเตือนและการเล่นสื่อ
Notification.MessagingStyle เปลี่ยนลักษณะการทำงานแล้ว

การแจ้งเตือนที่มีสไตล์นี้จะมีความแตกต่างดังนี้

Notification.CarExtender

Notification.WearableExtender

ไม่ใช้ ไม่รองรับตัวขยาย

Notification.Action.Builder

ตารางที่ 3 อธิบายการเปลี่ยนแปลงและการจํากัด API ในคลาส Notification.Action.Builder

ตารางที่ 3 การเปลี่ยนแปลงเมธอดสาธารณะสำหรับ Notification.Action.Builder

เมธอดสาธารณะ เอฟเฟ็กต์ คำอธิบาย
ผู้รับเหมาสาธารณะ เปลี่ยนลักษณะการทำงานแล้ว ระบบจะไม่สนใจไอคอนที่ระบุในตัวสร้างสาธารณะ
addRemoteInput เปลี่ยนลักษณะการทำงานแล้ว ผู้ช่วยดิจิทัล เช่น Google Assistant จะแทรกคำตอบของข้อความให้ผู้ใช้เพื่อลดการรบกวนผู้ขับ ผู้ใช้ พิมพ์ข้อความไม่ได้
setAllowGeneratedReplies ไม่มีการดำเนินการ ระบบไม่รองรับฟีเจอร์ช่วยตอบ