Để 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_permission
có 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: String
android:authorities
.fun onCreate(): Boolean
super.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: List
fun onAppCardAdded(String, AppCardContext): AppCard
AppCardContext
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?