การแจ้งเตือนจะให้ข้อมูลสั้นๆ ที่ทันท่วงทีเกี่ยวกับเหตุการณ์จากแอปของคุณแก่คนขับขณะที่ไม่ได้ใช้งานแอป การแจ้งเตือนจะปรากฏในศูนย์การแจ้งเตือน และการแจ้งเตือนบางรายการจะปรากฏเป็นการแจ้งเตือนแบบลอยบนจอแสดงผลด้วย หากต้องการสร้างการแจ้งเตือนสำหรับ
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 วินาที ยกเว้นในกรณีต่อไปนี้
การแจ้งเตือนล่วงหน้าสำหรับสายเรียกเข้าบางสายจะปิดไม่ได้ และ การแจ้งเตือนล่วงหน้าจะยังคงอยู่จนกว่าผู้ขับจะรับสายหรือ สายจะสิ้นสุด การแจ้งเตือนต้องเป็นไปตามข้อกำหนดต่อไปนี้จึงจะมีสิทธิ์เป็นข้อความแจ้งเตือนที่ปิดไม่ได้สำหรับสายเรียกเข้า
- เป็นของ
CATEGORY_CALL
- ตั้งค่า Intent แบบเต็มหน้าจอ
- ทำเครื่องหมายว่ากำลังดำเนินการโดยใช้วิธี
setOngoing()
- เป็นของ
การแจ้งเตือนล่วงหน้าจะยังคงอยู่หากแอป อัปเดตการแจ้งเตือน ภายในกรอบเวลา 8 วินาที
เมื่อปิดการแจ้งเตือนแบบลอย การแจ้งเตือนจะปรากฏในศูนย์การแจ้งเตือน ยกเว้นการแจ้งเตือนCATEGORY_NAVIGATION
การเปลี่ยนแปลงและการจำกัด Notification API สำหรับรถยนต์
ส่วนนี้จะสรุปความแตกต่างของแต่ละคลาสที่ Notifications API ทำงานแตกต่างกันหรือมีข้อจำกัดสำหรับ Android Automotive OS
Notification.Builder
ตารางที่ 1 และ 2 อธิบายการเปลี่ยนแปลงและการจำกัด API ในคลาส
Notification.Builder
ตารางที่ 1 การเปลี่ยนแปลงเมธอดสาธารณะสำหรับ Notification.Builder
เมธอดสาธารณะ | เอฟเฟ็กต์ | คำอธิบาย | ||
---|---|---|---|---|
|
ไม่มีการดำเนินการตามเงื่อนไข | Notification.MessagingStyle การแจ้งเตือนต้องเพิ่ม
การดำเนินการที่ระบุไว้ใน
ข้อกำหนดด้านความเข้ากันได้ การดำเนินการเพิ่มเติมที่เพิ่มจะไม่แสดงเป็นปุ่มการแจ้งเตือน |
||
|
ไม่มีการดำเนินการ | RemoteViews
และมุมมองเนื้อหาที่กําหนดเอง |
||
|
ไม่มีการดำเนินการ | ระบบไม่รองรับป้ายการแจ้งเตือน | ||
| ไม่มีการดำเนินการ | ไม่รองรับตัวจับเวลาถอยหลัง | ||
setColorized() |
เปลี่ยนข้อจำกัดแล้ว |
แอปที่แพลตฟอร์มลงนาม: กำหนดค่าได้ อนุญาตโดย ค่าเริ่มต้น แอปที่มีสิทธิ์ระดับระบบ: กำหนดค่าโดยแพลตฟอร์ม ไม่อนุญาตโดยค่าเริ่มต้น แอปอื่นๆ ทั้งหมด: แพลตฟอร์มกำหนดค่าไว้ ไม่อนุญาตโดยค่าเริ่มต้น |
||
setFullScreenIntent() |
เปลี่ยนลักษณะการทำงานแล้ว | ไม่เปิด Intent โดยอัตโนมัติ | ||
setLargeIcon() |
เปลี่ยนลักษณะการทำงานแล้ว | ไอคอนขนาดใหญ่จะแสดงทางด้านขวาของการแจ้งเตือน | ||
setLights() |
ไม่มีการดำเนินการ | อุปกรณ์ Android Automotive OS ไม่มีไฟแสดงสถานะ LED | ||
setOngoing() |
เปลี่ยนลักษณะการทำงานแล้ว |
ลักษณะการทำงานจะแตกต่างออกไปเมื่อการแจ้งเตือนยังทริกเกอร์ การแจ้งเตือนล่วงหน้าด้วย
|
ไม่มีการดำเนินการ | ไม่รองรับโหมดส่วนตัว |
setSettingsText() |
ไม่มีการดำเนินการ | การแจ้งเตือนไม่รองรับความสามารถที่ลิงก์ไปยังการตั้งค่าแอป โดยคนขับจะเข้าถึงการตั้งค่าแอปผ่านแอปแทน | ||
setTicker() |
ไม่มีการดำเนินการ | ไม่รองรับข้อความแถบเลื่อน |
ตารางที่ 2 การเปลี่ยนแปลงเกี่ยวกับชั้นเรียนที่ซ้อนกันสำหรับ Notification.Builder
คลาสที่ซ้อนกัน | เอฟเฟ็กต์ | คำอธิบาย |
---|---|---|
|
ไม่ใช้ | แสดงเฉพาะข้อความสรุป ระบบไม่รองรับการแจ้งเตือนโดยละเอียดสำหรับสไตล์เหล่านี้ |
Notification.BubbleMetadata |
ไม่ใช้ | ไม่รองรับฟอง |
Notification.MediaStyle |
ซ่อนอยู่ | ระบบจะซ่อนการแจ้งเตือนที่มีสไตล์นี้ Android Automotive OS จัดการ การโต้ตอบกับอินเทอร์เฟซผู้ใช้สำหรับการแจ้งเตือนและการเล่นสื่อ |
Notification.MessagingStyle |
เปลี่ยนลักษณะการทำงานแล้ว |
การแจ้งเตือนที่มีสไตล์นี้จะมีความแตกต่างดังนี้
|
|
ไม่ใช้ | ไม่รองรับตัวขยาย |
Notification.Action.Builder
ตารางที่ 3 อธิบายการเปลี่ยนแปลงและการจํากัด API ในคลาส
Notification.Action.Builder
ตารางที่ 3 การเปลี่ยนแปลงเมธอดสาธารณะสำหรับ Notification.Action.Builder
เมธอดสาธารณะ | เอฟเฟ็กต์ | คำอธิบาย |
---|---|---|
ผู้รับเหมาสาธารณะ | เปลี่ยนลักษณะการทำงานแล้ว | ระบบจะไม่สนใจไอคอนที่ระบุในตัวสร้างสาธารณะ |
addRemoteInput |
เปลี่ยนลักษณะการทำงานแล้ว | ผู้ช่วยดิจิทัล เช่น Google Assistant จะแทรกคำตอบของข้อความให้ผู้ใช้เพื่อลดการรบกวนผู้ขับ ผู้ใช้ พิมพ์ข้อความไม่ได้ |
setAllowGeneratedReplies |
ไม่มีการดำเนินการ | ระบบไม่รองรับฟีเจอร์ช่วยตอบ |