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ılavuzuna bakın.

Etkin bir kartın ömrü

Canlı kartların yayınlanma süresi boyunca sahip olması için uzun vadeli bağlam gerekir. Bu nedenle kartları arka planda Service yönetmelisiniz. Daha sonra, canlı bir kartı hizmet başlar başlamaz veya hizmetin izlediği diğer etkinliklere yanıt olarak yayınlayabilirsiniz. Benzer şekilde, artık alakalı olmayan veya hizmet kaldırıldıktan sonra kartları yayından kaldırmanız gerekir.

Canlı kart yayınladığınızda bu durumun kullanıcıları nasıl etkileyeceğini belirleyebilirsiniz. Kart, sessizce yayınladığınızda, görünür bir etkisi olmadan zaman çizelgesine eklenir. Kartı görmek için kullanıcıların ekranı kaydırması gerekir. Ayrıca, canlı kartın yayınlandıktan hemen sonra otomatik olarak görüntülenmesini de sağlayabilirsiniz. Bu genellikle uygulamanızın ana kullanıcı arayüzü bir etkinlik değil de canlı kart olduğunda kullanışlıdır.

Yayındaki kartta içerik gösterme

Canlı kart, bir düzen kaynağından veya kodunuzun doğrudan çizim yüzeyinde oluşturulmasına izin vererek içeriği görüntüleyebilir. Karttaki içeriği ne sıklıkta güncellemeniz gerektiğine ve öncelikli olarak widget veya serbest biçimli grafikler oluşturup oluşturmadığınıza bağlı olarak uygulamanız için en uygun yöntemi seçin.

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

Uygulamanız yalnızca standart widget'lar ve ara sıra güncelleme gerektiriyorsa (yenilemeler arasında yaklaşık birkaç saniye veya daha uzun bir süre) kartınızı RemoteViews sınıfının yardımıyla oluşturun. RemoteViews nesnesi, kendi uygulama kodunuzdan ayrı bir işlemde çalışan Glass zaman çizelgesinin oluşturduğunuz bir düzeni şişirmesini sağlar.

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

RemoteViews kullanan bir kart yayınlandıktan sonra, set* yöntemlerinin çağrılması yoluyla görünümlerde yapılan değişikliklerin, güncellemeyi zorlamak için canlı kartta setViews öğesini tekrar açıkça çağırmadığınız sürece zaman çizelgesinde görünmeyeceğini unutmayın.

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

Uygulamanız standart widget'ların desteklediğinden daha sık güncelleme (saniyede birkaç kez) veya daha ayrıntılı grafikler gerektiriyorsa doğrudan oluşturmayı etkinleştirin ve kart yüzeyine SurfaceHolder.Callback ekleyin.

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

Ardından, doğrudan arka plandaki bir iş parçacığının içinde veya harici etkinliklere (ör. sensör veya konum güncellemeleri) yanıt olarak yüzeye çizim yapabilirsiniz. Kart gösterildiğinde veya gizlendiğinde oluşturma mantığınızı başlatmak ve durdurmak için surfaceCreated ve surfaceDestroyed yöntemlerini kullanın.

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

Canlı kart, kullanıcı kartı seçmek için dokunduğunda gerçekleştirilecek bir işlem (bir etkinliği, hizmeti başlatmak veya yayın gerçekleştirmek için PendingIntent) sağlamalıdır. Normalde bu işlemi, seçenekler menüsü görüntüleyen veya kullanıcıyı uygulamanızın başka bir bölümüne yönlendiren bir etkinlik başlatmak için kullanırsınız. En azından kullanıcının canlı kartı zaman çizelgesinden kaldırmasını sağlayan bir seçenek sunmalısınız.

     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 Kartın yayınlandığında 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
void
void
LiveCard
LiveCard
setDirectRenderingEnabled(boolean enable)
LiveCard
setRenderer(GlRenderer oluşturucu)
LiveCard
setViews(RemoteViews görünümleri)
LiveCard
setVoiceActionEnabled(boolean enable)
void
Devralınan Yöntemler

Sabitler

XE21 API düzeyine eklendi

herkese açık static 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 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; bu, hata ayıklama amacıyla kullanılır

Herkese Açık Yöntemler

XE16 API düzeyinde eklendi

herkese açık LiveCard ekleyin (Hizmet hizmeti)

Bu kart yayınlandığında ilgili hizmetin ön planda çalışacak şekilde ayarlanması için arka plan Service ekleyin.

Bu canlı kart yayından kaldırıldığında hizmet, otomatik olarak ön plandan kaldırılır.

Parametreler
hizmet eş zamanlı olarak çalışacak şekilde ayarlanacak
İlerlemeler
  • ç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üzeye erişim aracı olarak kullanılması gerektiğini unutmayın. 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 isPublished ()

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

XE16 API düzeyinde eklendi

herkese açık void navigation ()

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 publish (LiveCard.PublishMode modu)

Bu kartı zaman çizelgesinde yayınlar.

Kart yalnızca bir işlem içeriyorsa ve doğrudan oluşturma etkinleştirilmişse veya uzaktan görünümler ayarlanmışsa görüntülenir.

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
İlerlemeler
  • çağrı zinciri için bu nesne
XE12 API düzeyinde eklendi

herkese açık LiveCard setDirectRenderingEnabled (boolean enable)

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 aksi takdirde bir istisna yapılacağını unutmayın.

Parametreler
enable doğrudan oluşturmanın etkinleştirilip etkinleştirilmeyeceği
İlerlemeler
  • ç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 oluşturma için (otomatik olarak) istenen bir yüzeye çizim yapmak amacıyla kullanılır.

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

herkese açık LiveCard setViews (RemoteViews görüntülemeleri)

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, yayınlanan bir kartın uzaktan görünümlerinde doğrudan değişiklik yapıldıktan sonra da çağrılmalıdır. Aksi takdirde, 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ü
İlerlemeler
  • çağrı zinciri için bu nesne
XE21 API düzeyine eklendi

herkese açık LiveCard setVoiceActionEnabled (boolean enable)

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

Ayarlandığında kart, zaman çizelgesinde gösterildiğinde "ok Glass" ifadesini dinler ve bu koruma ifadesi söylendiğinde, setAction(PendingIntent) yöntemi tarafından ayarlanan niyeti tetikler. Amaç, bağlama dayalı sesli menüler uygulayan bir etkinlik başlatırsa etkinlik, ilk menü öğelerinde otomatik olarak açılır (ör. etkinliğin içinde "ok Glass" kelimesi söylenmiş gibi). Bu özellik, canlı kartlara bağlamsal sesli menülerin uygulanmasını sağlar.

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

herkese açık void yayından kaldır ()

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