Uygulama kartlarını gösteren uygulamalarla iletişim kurmak için AppCardHost
simgesini kullanın.
İzinler
AppCardHost
kullanan tüm uygulamalar aşağıdaki izinlere sahip olmalıdır:
android.permission.INTERACT_ACROSS_USERS_FULL
android.permission.QUERY_ALL_PACKAGES
- (Yalnızca API düzeyi 34 ve sonraki sürümlerde)
android.car.permission.BIND_APP_CARD_PROVIDER
Başlat
Ana makineyi başlatmak için şunları sağlayın:
- Bağlam
updateRate
Milisaniye cinsinden AppCard güncelleme hızı.fastUpdateRate
EnforceFastUpdateRate
ile etiketlenen bileşenler için milisaniye cinsinden güncelleme hızıresponseExecutor
AppCard uygulamalarından yanıt almak istediğiniz ileti dizisi.
Tasarım
AppCardHost
ile iki şekilde etkileşim kurulabilir:
AppCardListener
olarak kaydolma
VEYA,
AppCardListener
AppCardListener
bileşeni, AppCardHost
ve AppCard uygulamalarından iletişim güncellemeleri almak için kendisini bir AppCardHost
'a kaydeder.
AppCardListener
arayüz işlevleri burada ayrıntılı olarak açıklanmıştır.
fun onAppCardReceived(AppCardContainer)
appIdentifier
sağlayan bir AppCardContainer
olarak gönderilirfun onComponentReceived(AppCardComponentContainer)
Identifier
ve bileşenin ilişkili olduğu AppCard'ı işaretlemek için bir dize kimliği sağlayan bir AppCardComponentContainer
olarak gönderilir.fun onProviderRemoved(String, String?)
Yetki {@code null}
ise paketin tamamı kaldırılmıştır.
fun onProviderAdded(String, String?)
Örnek kullanım. Bir uygulama kartı seçicideki tüm uygulama kartlarını yenilemek için bu işlevi tetikleyici olarak kullanın. Yetki {@code null}
ise paketin tamamı eklenmiştir.
fun onPackageCommunicationError(appIdentifier, Throwable)
AppCardHost
bir AppCard sağlayıcısıyla iletişim kurarken hatayla karşılaştığında tetiklenir.
Örnek kullanım. Kullanıcıya, seçtiği bir uygulama kartında hata olduğunu göstermek için bu yöntemi kullanın.
API'ler
fun refreshCompatibleapp()
fun destroy()
fun registerListener(AppCardListener)
AppCardListener
kaydetmek için kullanılır.fun unregisterListener(AppCardListener)
AppCardListener
kaydını iptal etmek için kullanılır.fun getAllAppCards(AppCardContext)
AppCardListener
'ye sistemde sağlanan tüm uygulama kartlarını sağlamak için bu yöntemi çağırın. Bu yöntem, sağlayıcılara uygulama kartlarını nasıl yapılandıracakları konusunda ipuçları sağlayan belirli bir AppCardContext
ile birlikte kullanılır.fun requestAppCard(AppCardContext, appIdentifier, String)
AppCardListener
'ye belirli bir AppCard sağlamak için bu yöntemi çağırın. Bu yöntemde, sağlayıcılara AppCard'larını nasıl yapılandıracakları konusunda ipuçları veren bir AppCardContext
sağlanır.fun notifyAppCardRemoved(appIdentifier, String)
fun notifyAppCardInteraction(appIdentifier, String, String, String)
AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK
ile gösterilir.
appIdentifier
, uygulama kartı kimliği, bileşen kimliği ve etkileşim kimliğiyle bu işlevi çağıran bir onClick
dinleyici içeren bir düğme oluşturmanızı öneririz.fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)
AppCardContext
güncellemesi gönderin. Örneğin, Park modundan Sürüş moduna geçerken her etkin AppCard için isInteractable
değerinin false
olarak ayarlandığı bir AppCardContext
güncellemesi göndermek üzere bu yöntemi kullanın.SSS
Örnek uygulamaları nerede bulabilirim?
Örnek ana makine. Test özellikleriyle birlikte sistemdeki tüm uygulama kartlarını gösterir.
DriverUI ve Pano yöneticisi. Pano yöneticisi seçici, DriverUI ise sunucu görevi görür.
Her
AppCardContentProvider
kaç tane uygulama kartı destekleyebilir?AppCardContentProvider
, sınırsız sayıda uygulama kartı destekleyebilir. Ancak uygulama kartlarının sayısını, performansın düşmesiyle olumlu kullanıcı deneyimi arasında dengeye getirin.