Để tạo AppCard, ứng dụng phải tạo một trình cung cấp trong tệp kê khai mở rộng AppCardContentProvider. AppCardContentProvider sẽ trừu tượng hoá các thông tin chi tiết cơ bản để tạo điều kiện thuận lợi cho việc tạo AppCard.
Nội dung khai báo trong tệp kê khai
Để tạo AppCard, ứng dụng phải tạo một trình cung cấp trong tệp kê khai để mở rộng 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>
Bạn chỉ có thể xác định một nhà cung cấp cho mỗi gói và có các thuộc tính sau:
android:exported="true"android:enabled="true"android:permission="@string/host_permission"HOẶC,
android:readPermission="@string/host_permission"VÀ
android:writePermission="@string/host_permission"
@string/host_permissioncó trong thư viện AppCard và xác định một quyền tuỳ thuộc vào phiên bản API Android của hệ thống.Việc sử dụng tài nguyên chuỗi chỉ hoạt động khi bạn tạo bằng Gradle. Khi sử dụng Soong, hãy chỉ định chuỗi rõ ràng bằng giá trị tài nguyên chuỗi theo trình đủ tiêu chuẩn tài nguyên thích hợp.
(mặc định)
android:grantUriPermissions="false"(mặc định)
android:forceUriPermissions="false"Để tránh kết quả không mong muốn, nhà cung cấp phải xác định chỉ một cơ quan duy nhất trong
android:authorities.Khai báo bộ lọc ý định dựa trên hành động,
com.android.car.appcard.APP_CARD_PROVIDER
Mở rộng AppCardContentProvider
Phần này mô tả các phương thức cuối cùng ghi đè và được bảo vệ.
Phương thức ghi đè
val authority: Stringandroid:authorities.fun onCreate(): Booleansuper.onCreate(). Sử dụng phương thức này để thiết lập chức năng có thể gây ra độ trễ nếu được thiết lập khi AppCard được yêu cầu.val appCardIds: Listfun onAppCardAdded(String, AppCardContext): AppCardAppCardContext cung cấp gợi ý về cách AppCard xuất hiện.
Sử dụng phương thức này để thiết lập mọi chức năng mà AppCards yêu cầu được hỗ trợ dưới dạng nhà cung cấp. Sau khi hàm này được gọi, AppCard tương ứng với mã nhận dạng đã cho sẽ được coi là đang hoạt động.
fun onAppCardRemoved(String)fun onAppCardContextChanged(String, AppCardContext)AppCardContext đã cập nhật.Phương thức cuối cùng được bảo vệ
fun sendAppCardUpdate(AppCard)fun sendAppCardComponentUpdate(String, Component)EnforceFastUpdateRate, thì bản cập nhật sẽ được gửi ngay lập tức.Câu hỏi thường gặp
Các phương thức triển khai mẫu nằm ở đâu?