Canlı Kart

XE12 API düzeyinde eklendi
herkese açık ders

LiveCard

Bu sınıf, etkin kartlar oluşturmanıza ve bunları zaman çizelgesinde yayınlamanıza olanak tanır.

Canlı kart oluşturma hakkında daha fazla bilgi için Canlı kartlar geliştirici kılavuzu.

Etkin bir kartın ömrü

Canlı kartlar, yayında oldukları süre boyunca kendilerine ait olabilmeleri için uzun vadeli bir bağlam gerektirir. Bu nedenle, bunları arka planda Service yönetmeniz gerekir. Ardından hizmet başlar başlamaz veya müşterinin kullandığı diğer etkinliklere yanıt olarak kullanıma hazır. Benzer şekilde, artık alakalı olmadıklarında veya artık alakalı olmadığında kartları yayından kaldırmanız gerekir. hizmet kaldırılır.

Canlı kart yayınladığınızda bu durumun kullanıcıları nasıl etkileyeceğini belirleyebilirsiniz. Sessizce yayınlarken Kart, görünür bir efekt olmadan zaman çizelgesine eklenir. Kullanıcıların kartı görebilirsiniz. Ayrıca canlı kartın, yüklendikten hemen sonra otomatik olarak görüntülenmesini de sağlayabilirsiniz. yayınlanmış. Bu, genellikle uygulamanızın ana kullanıcı arayüzü canlı bir kart olduğunda yararlı olur bir etkinlik değildir.

Yayındaki kartta içerik gösterme

Canlı kart, bir düzen kaynağından veya kodunuzun oluşturulmasına izin vererek içerik görüntüleyebilir doğrudan çizim yüzeyine koyabilir. Uygulamanıza göre en uygun yöntemi seçin karttaki içeriği ne sıklıkla güncellemeniz gerektiği ve öncelikli olarak veya serbest biçimli grafiklerdir.

Uzaktan görünümleri kullanarak düzeni şişirme

Uygulamanız yalnızca standart widget'lar ve ara sıra güncellemeler gerektiriyorsa (birkaç saniye veya yenilemeler arasında uzun) bir süre kalır) ve ardından RemoteViews sınıfının yardımıyla kartınızı oluşturun. RemoteViews nesnesi, oluşturduğunuz bir düzeni şişirin.

     LiveCard liveCard; // initialized elsewhere
     RemoteViews views = new RemoteViews(context.getPackageName(),
             R.layout.my_layout);
     liveCard.setViews(views);
 

RemoteViews kullanan bir kart yayınlandığında, görüntülemelerde set* yöntemlerinin çağrılması, açıkça çağrılmadığı sürece zaman çizelgesinde görünmez Güncellemenin zorunlu kılınması için canlı kartta setViews tekrar dokunun.

Doğrudan yayındaki kart yüzeyinde çizim yapma

Uygulamanız daha sık güncelleme (saniyede birkaç kez) veya daha fazla güncelleme gerektiriyorsa standart widget'ların desteklediğinden daha gelişmiş grafiklere sahip olması, doğrudan oluşturmayı etkinleştirmenizi Kartın yüzeyine SurfaceHolder.Callback.

     LiveCard liveCard; // initialized elsewhere
     liveCard.setDirectRenderingEnabled(true);
     liveCard.getSurfaceHolder().addCallback(callback);
 

Daha sonra, doğrudan bir arka plan ileti dizisinin içinde veya harici olaylar (örneğin, sensör veya konum güncellemeleri). surfaceCreated ve Kart hazır olduğunda oluşturma mantığınızı başlatmak ve durdurmak için surfaceDestroyed yöntem veya gizlenmiş olabilir.

Yüzey sahibinin geri çağırma yöntemlerinin ana kullanıcı arayüzü iş parçacığında çağrılmadığını unutmayın.

Etkin kart seçimini işleme

Yayındaki bir kart bir işlem (etkinlik başlatmak için PendingIntent, hizmet veya yayın gerçekleştirme). Normalde bu işlemi, bir seçenekler menüsü görüntüleyen veya uygulamanızın başka bir bölümüne aktarmaktır. En azından, müşterilerinize Kullanıcının yayındaki kartı zaman çizelgesinden kaldırmasına olanak tanıyan bir kod snippet'i ekleyin.

     LiveCard liveCard; // initialized elsewhere
     Intent intent = new Intent(context, MyActivity.class);
     liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
 

Herhangi bir işlem içermeyen canlı kartlar gösterilmez.

İç İçe Yerleştirilmiş Sınıflar
enum LiveCard.PublishMode Yayınlandığında kartın kullanıcıya nasıl sunulacağını belirler.
Sabitler
String EXTRA_FROM_LIVECARD_VOICE Canlı bir karttan sesle etkinleştirildiğini belirten Intent ekstra boole değeri.
Kamu Yüklenicileri
LiveCard(Bağlam bağlamı, Dize etiketi)
Herkese Açık Yöntemler
LiveCard
attach(Hizmet hizmet)
SurfaceHolder
boolean
geçersiz
geçersiz
LiveCard
LiveCard
setDirectRenderingEnabled(boole etkinleştirme)
LiveCard
setRenderer(GlRenderer oluşturucu)
LiveCard
setViews(RemoteViews görünümleri)
LiveCard
setVoiceActionEnabled(boole etkinleştirme)
geçersiz
Devralınan Yöntemler

Sabitler

XE21 API düzeyine eklendi

herkese açık statik final Dize EXTRA_FROM_LIVECARD_VOICE

Canlı bir karttan sesle etkinleştirildiğini belirten Intent ekstra boole değeri.

Sabit Değer: "android.intent.extra.EXTRA_FROM_LIVECARD"

Kamu Yüklenicileri

XE16 API düzeyinde eklendi

herkese açık 'nı inceleyin. LiveCard (Bağlam bağlamı, Dize etiketi)

Belirtilen etiketle etkin bir kart oluşturur.

Bir kartın açıkça yayınlanana kadar görünmeyeceğini unutmayın.

Parametreler
context uygulamanın bağlamını
etiket Kart için boş olmayan etiket; hata ayıklama amacıyla kullanılmaktadır

Herkese Açık Yöntemler

XE16 API düzeyinde eklendi

herkese açık LiveCard ekle (Hizmet hizmeti)

Bu kart alındığında Service arka plan ekleyin söz konusu hizmet ön planda çalışacak şekilde ayarlanır.

Bu durumda hizmet otomatik olarak ön plandan kaldırılır yayındaki kart yayından kaldırıldı.

Parametreler
hizmet eş zamanlı olarak çalışacak şekilde ayarlanacak
İadeler
  • çağrı zinciri için bu nesne
XE12 API düzeyinde eklendi

herkese açık SurfaceHolder getSurfaceHolder ()

Doğrudan oluşturma etkinleştirildiğinde, üzerinde çizim yapılacak Surface öğesine erişim izni verir.

Döndürülen SurfaceHolder öğesinin, yönetilen yüzey. Yüzeyin şeklini ve türünü değiştirme yöntemleri işe yaramaz.

Ayrıca, bu nesne için geri çağırmaların UI iş parçacığında yapılmadığını da unutmayın.

XE12 API düzeyinde eklendi

herkese açık Boole 'nı inceleyin. isPublished ()

Kart şu anda yayınlanmışsa true değerini döndürür.

XE16 API düzeyinde eklendi

herkese açık geçersiz 'nı inceleyin. gezinme ()

Kullanıcıyı zaman çizelgesinde bu karta gönderir.

Fırlatma
IllegalStateException Kart yayınlanmamışsa
XE12 API düzeyinde eklendi

herkese açık geçersiz 'nı inceleyin. yayınlayın (LiveCard.PublishMode modu)

Bu kartı zaman çizelgesinde yayınlar.

Kart yalnızca bir işlem içeriyorsa ve doğrudan oluşturma etkinse veya uzaktan görünümler ayarlandı.

Parametreler
mod Kartın kullanıcıya nasıl sunulacağını belirler
XE12 API düzeyinde eklendi

herkese açık LiveCard setAction (PendingIntent intent)

Kart seçildiğinde gerçekleştirilen işlemi değiştirir.

Parametreler
amaç Kart seçildiğinde tetiklenecek
İadeler
  • çağrı zinciri için bu nesne
XE12 API düzeyinde eklendi

herkese açık LiveCard setDirectRenderingEnabled (boole etkinleştirme)

Doğrudan oluşturmayı etkinleştirir.

Bu modda, kart içeriğinin doğrudan Surface olarak oluşturulması gerekir.

Bu yöntemin yalnızca kart yayınlanmadığında çağrılabileceğini ve istisna olabilir.

Parametreler
enable doğrudan oluşturmanın etkinleştirilip etkinleştirilmeyeceği
İadeler
  • çağrı zinciri için bu nesne
İlgili Konular
XE16 API düzeyinde eklendi

herkese açık LiveCard setRenderer (GlRenderer oluşturucu)

OpenGL tabanlı bir oluşturucu ekler.

Oluşturucu, doğrudan istenen (otomatik olarak) bir yüzeye çizim yapmak için kullanılır oluşturma.

İadeler
  • çağrı zinciri için bu nesne
XE12 API düzeyinde eklendi

herkese açık LiveCard setViews (RemoteViews görünümleri)

Bu kartın kullanıcı arayüzünü görüntülemek için kullanılan RemoteViews değerini değiştirir.

Bu yöntem, doğrudan dokümanın uzaktan görünümlerinde herhangi bir değişiklik yapıldıktan sonra da çağrılmalıdır. yoksa bu değişiklikler zaman çizelgesine yansıtılmaz.

Doğrudan oluşturma etkinleştirilirse bu yöntemin hiçbir etkisi olmaz.

Parametreler
görüntüleme kartın kullanıcı arayüzü
İadeler
  • çağrı zinciri için bu nesne
XE21 API düzeyine eklendi

herkese açık LiveCard setVoiceActionEnabled (boole etkinleştirme)

Kart zaman çizelgesinde gösterildiğinde sesli işlemi etkinleştirir.

Ayarlandığında kart "ok Glass" ifadesini dinler. zaman çizelgesinde gösterildiğinde söz konusu tebligat, Google Web Sitesi'ndeki setAction(PendingIntent) yöntemini çağırın. Niyet, bağlamsal sesli menüler uygulayan etkinlik, etkinlik otomatik olarak ilk menü öğesinde aç (ör. etkinliğin içinde "ok Glass" ifadesi söylenmiş gibi) ) ekleyebilirsiniz. Bu özellik, canlı kartlara bağlamsal sesli menülerin uygulanmasını sağlar.

Parametreler
enable sesli işlemin etkinleştirilip etkinleştirilmeyeceği
İadeler
  • çağrı zinciri için bu nesne
İlgili Konular
XE12 API düzeyinde eklendi

herkese açık geçersiz 'nı inceleyin. yayından kaldırmak ()

Bu kartı zaman çizelgesinde yayından kaldırır.