สร้าง AppCard

หากต้องการสร้าง AppCard แอปต้องสร้างผู้ให้บริการในไฟล์ Manifest ที่ขยาย AppCardContentProvider AppCardContentProviderจะซ่อนรายละเอียดพื้นฐาน เพื่ออำนวยความสะดวกในการสร้าง AppCard

การประกาศไฟล์ Manifest

หากต้องการสร้าง AppCard แอปต้องสร้างผู้ให้บริการในไฟล์ Manifest เพื่อขยาย AppCardContentProvider

<provider android:name=".SimpleAppCardContentProvider"
            android:authorities="com.example.appcard.sample.media"
            android:permission="@string/host_permission"
            android:exported="true"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.android.car.appcard.APP_CARD_PROVIDER" />
            </intent-filter>
</provider>

กำหนดผู้ให้บริการได้เพียงรายเดียวต่อแพ็กเกจและมีพร็อพเพอร์ตี้ต่อไปนี้

  • android:exported="true"
  • android:enabled="true"
  • android:permission="@string/host_permission"

    หรือ

    • android:readPermission="@string/host_permission"

      และ

      android:writePermission="@string/host_permission"

  • @string/host_permission อยู่ในไลบรารี AppCard และกำหนดสิทธิ์ตามเวอร์ชัน Android API ของระบบ

    การใช้ทรัพยากรสตริงจะใช้ได้เมื่อสร้างด้วย Gradle เท่านั้น เมื่อใช้ Soong ให้ระบุสตริงที่ชัดเจนด้วยค่าทรัพยากรสตริงตาม ตัวระบุทรัพยากรที่เหมาะสม

  • (ค่าเริ่มต้น) android:grantUriPermissions="false"

  • (ค่าเริ่มต้น) android:forceUriPermissions="false"

    ผู้ให้บริการต้องกำหนดสิทธิ์เพียงรายการเดียวเท่านั้นใน android:authorities เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด

  • ประกาศตัวกรอง Intent ที่อิงตามการดำเนินการ com.android.car.appcard.APP_CARD_PROVIDER

ขยาย AppCardContentProvider

ส่วนนี้จะอธิบายเมธอดสุดท้ายของ override และ protected

วิธีการลบล้าง

val authority: String
ใช้วิธีนี้เพื่อแสดงผลการให้สิทธิ์ที่กำหนดไว้ในพร็อพเพอร์ตี้ไฟล์ Manifest ของ android:authorities

fun onCreate(): Boolean
เมธอดนี้ต้องเรียกใช้ super.onCreate() ใช้วิธีนี้ เพื่อตั้งค่าฟังก์ชันการทำงานที่อาจทำให้เกิดความล่าช้าหากตั้งค่า เมื่อมีการขอ AppCard

val appCardIds: List
ใช้วิธีนี้เพื่อแสดงรายการรหัส AppCard ที่รองรับ เราขอแนะนำให้สร้างรหัสแต่ละรายการให้มีรายละเอียด เนื่องจากระบบจะใช้สตริงนี้เพื่อบันทึกข้อผิดพลาด

fun onAppCardAdded(String, AppCardContext): AppCard
ระบบจะเรียกใช้เมธอดนี้เมื่อแสดง AppCard เป็นครั้งแรก และ ระบุรหัสที่เกี่ยวข้องกับ AppCard และ AppCardContext ที่ให้ คำแนะนำเกี่ยวกับวิธีแสดง AppCard

ใช้วิธีนี้เพื่อตั้งค่าฟังก์ชันการทำงานที่ AppCards กำหนดให้ในฐานะผู้ให้บริการ เมื่อเรียกใช้ฟังก์ชันนี้ ระบบจะถือว่า AppCard ที่ สอดคล้องกับรหัสที่ระบุใช้งานอยู่

fun onAppCardRemoved(String)
ระบบจะเรียกใช้เมธอดนี้เมื่อไม่มีอินสแตนซ์ที่เหลือของ AppCard แสดงต่อผู้ใช้ และจัดการการล้างข้อมูลทั้งหมด เมื่อเรียกใช้ฟังก์ชันนี้ ระบบจะถือว่า AppCard ที่สอดคล้องกับรหัสที่ระบุไม่ได้ใช้งาน

fun onAppCardContextChanged(String, AppCardContext)
ระบบจะเรียกใช้เมธอดนี้เมื่อต้องการอัปเดตวิธีแสดง AppCard และส่ง AppCardContext ที่อัปเดตแล้ว

วิธีการสุดท้ายที่ได้รับการปกป้อง

fun sendAppCardUpdate(AppCard)
เรียกใช้เมธอดนี้เพื่อจัดคิวการอัปเดตสำหรับ AppCard ที่ใช้งานอยู่

fun sendAppCardComponentUpdate(String, Component)
เรียกใช้เมธอดนี้เพื่อจัดคิวการอัปเดตคอมโพเนนต์ใน AppCard ที่ใช้งานอยู่ หากคอมโพเนนต์ที่ระบุมีแท็ก EnforceFastUpdateRate ระบบจะส่งการอัปเดตทันที

คำถามที่พบบ่อย

ตัวอย่างการใช้งานอยู่ที่ไหน