ใช้ AppCardHost
เพื่อสื่อสารกับแอปที่แสดง AppCard
สิทธิ์
แอปที่ใช้ AppCardHost
ต้องมีสิทธิ์ต่อไปนี้
android.permission.INTERACT_ACROSS_USERS_FULL
android.permission.QUERY_ALL_PACKAGES
- (ใน API ระดับ 34 ขึ้นไปเท่านั้น)
android.car.permission.BIND_APP_CARD_PROVIDER
เริ่มต้น
หากต้องการเริ่มต้นใช้งานโฮสต์ ให้ระบุข้อมูลต่อไปนี้
- บริบท
updateRate
อัตราการอัปเดต AppCard เป็นมิลลิวินาทีfastUpdateRate
อัตราการอัปเดตเป็นมิลลิวินาทีสําหรับคอมโพเนนต์ที่ติดแท็กด้วยEnforceFastUpdateRate
responseExecutor
ชุดข้อความที่คุณต้องการรับการตอบกลับจากแอป AppCard
การออกแบบ
คุณสามารถโต้ตอบกับ AppCardHost
ได้ 2 วิธีดังนี้
- ลงทะเบียนเป็น
AppCardListener
หรือ
- โต้ตอบกับ
AppCardHost
API
AppCardListener
คอมโพเนนต์ AppCardListener
จะลงทะเบียนกับ AppCardHost
เพื่อรับการอัปเดตการสื่อสารจากแอป AppCardHost
และแอป AppCard
ดูรายละเอียดฟังก์ชันอินเทอร์เฟซของ AppCardListener
ได้ที่นี่
fun onAppCardReceived(AppCardContainer)
AppCardContainer
ซึ่งระบุ AppCard และ appIdentifier
เพื่อระบุแอปที่ส่ง AppCardfun onComponentReceived(AppCardComponentContainer)
AppCardComponentContainer
ซึ่งให้คอมโพเนนต์ AppCard, Identifier
เพื่อระบุแอปที่ส่ง AppCard และรหัสสตริงเพื่อชี้ไปยัง AppCard ที่คอมโพเนนต์นั้นเกี่ยวข้องfun onProviderRemoved(String, String?)
หากมีสิทธิ์เป็น {@code null}
แสดงว่าระบบนําทั้งแพ็กเกจออกแล้ว
fun onProviderAdded(String, String?)
ตัวอย่างการใช้งาน ใช้ฟังก์ชันนี้เป็นทริกเกอร์เพื่อรีเฟรช AppCard ทั้งหมดที่ใช้ได้ในตัวเลือก AppCard หากมีสิทธิ์เป็น {@code null}
แสดงว่ามีการเพิ่มทั้งแพ็กเกจ
fun onPackageCommunicationError(appIdentifier, Throwable)
AppCardHost
พบข้อผิดพลาดขณะสื่อสารกับผู้ให้บริการ AppCard
ตัวอย่างการใช้งาน ใช้วิธีการนี้เพื่อแสดงให้ผู้ใช้ทราบว่า AppCard ที่เลือกพบข้อผิดพลาด
API
fun refreshCompatibleapp()
fun destroy()
fun registerListener(AppCardListener)
AppCardListener
fun unregisterListener(AppCardListener)
AppCardListener
fun getAllAppCards(AppCardContext)
AppCardListener
ที่ลงทะเบียนไว้พร้อม AppCard ทั้งหมดที่มีให้ในระบบด้วย AppCardContext
ที่ระบุ ซึ่งจะให้คำแนะนำแก่ผู้ให้บริการเกี่ยวกับวิธีจัดโครงสร้าง AppCardfun requestAppCard(AppCardContext, appIdentifier, String)
AppCardListener
ที่ลงทะเบียน โดยให้ AppCardContext
ที่บอกคำแนะนำแก่ผู้ให้บริการเกี่ยวกับวิธีจัดโครงสร้าง AppCardfun notifyAppCardRemoved(appIdentifier, String)
fun notifyAppCardInteraction(appIdentifier, String, String, String)
AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK
onClick
Listener ที่เรียกใช้ฟังก์ชันนี้ด้วย appIdentifier
, รหัส AppCard, รหัสคอมโพเนนต์ และรหัสการโต้ตอบfun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)
AppCardContext
สำหรับ AppCard ที่เฉพาะเจาะจง เช่น เมื่อเปลี่ยนจากโหมดเข้าเกียร์ว่างเป็นโหมดขับเคลื่อน ให้ใช้วิธีนี้เพื่อส่งAppCardContext
การอัปเดตโดยตั้งค่า isInteractable
เป็น false
สําหรับ AppCard ที่ใช้งานอยู่แต่ละรายการคำถามที่พบบ่อย
ฉันจะดูตัวอย่างการใช้งานได้จากที่ใด
โฮสต์ตัวอย่าง แสดง AppCard ทั้งหมดที่ใช้ได้ของระบบ พร้อมกับความสามารถในการทดสอบ
DriverUI และเครื่องมือจัดการ Pano Pano Manager จะทำหน้าที่เป็นตัวเลือก ส่วน DriverUI จะทำหน้าที่เป็นผู้นำเสนอ
AppCardContentProvider
แต่ละรายการรองรับ AppCard ได้กี่รายการAppCardContentProvider
รองรับ AppCard ได้ไม่จำกัดจำนวน อย่างไรก็ตาม อย่าลืมรักษาสมดุลระหว่างจำนวน AppCard กับประสิทธิภาพที่ลดลงเทียบกับประสบการณ์การใช้งานที่ดีของผู้ใช้