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_FULLandroid.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
updateRateMilisaniye cinsinden AppCard güncelleme hızı.fastUpdateRateEnforceFastUpdateRateile etiketlenen bileşenler için milisaniye cinsinden güncelleme hızıresponseExecutorAppCard uygulamalarından yanıt almak istediğiniz ileti dizisi.
Tasarım
AppCardHost ile iki şekilde etkileşim kurulabilir:
AppCardListenerolarak 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
AppCardContentProviderkaç 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.