Canlı Kart
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.
Canlı kartın ömrü
Canlı kartlar, yayınlandıkları süre boyunca onlara uzun süreli bir bağlam bilgisi gerektirdiğinden bunları bir arka planda Service
yönetmelisiniz. Ardından, hizmet başlar başlamaz veya hizmetin izlediği diğer etkinliklere yanıt olarak canlı kart yayınlayabilirsiniz. Benzer şekilde, artık alakalı olmayan veya hizmet kaldırıldığında kartları yayından kaldırmalısınız.
Canlı kart yayınlarken bu durumun kullanıcıları nasıl etkileyeceğini seçmeniz gerekir. Sessiz bir şekilde yayınlandığında, kart zaman çizelgesine görünür bir etki olmadan eklenir: Kullanıcıların kartı görmek için ekranı kaydırması gerekir. Canlı kartın yayınlandıktan hemen sonra otomatik olarak gösterilmesini de sağlayabilirsiniz. Bu özellik, genellikle uygulamanızın ana kullanıcı arayüzü bir etkinlik değil, canlı kart olduğunda kullanışlıdır.
Canlı kartta içerik görüntüleme
Canlı kart, içeriği bir düzen kaynağından veya kodunuzun doğrudan çizim yüzeyine oluşturulmasına izin vererek görüntüleyebilir. Karttaki içeriği ne sıklıkta güncellemeniz gerektiği ve öncelikli olarak widget'lar veya serbest biçimli grafikler oluşturup oluşturmadığınıza göre uygulamanız için en uygun yöntemi seçin.
Uzak görünümleri kullanarak düzeni artırma
Uygulamanız yalnızca standart widget'lar ve seyrek güncellemeler (yenilemeler arasında yaklaşık birkaç saniye veya daha uzun) gerektiriyorsa kartınızı RemoteViews
sınıfının yardımıyla oluşturun.
RemoteViews
nesnesi, kendi uygulama kodunuzdan ayrı bir şekilde çalışan Glass zaman çizelgesinin oluşturduğunuz bir düzeni şişirmesine olanak tanır.
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öntemlerini çağırarak görüntülemelerde yapılan değişikliklerin, güncellemeye zorlamak için canlı kartta açık bir şekilde tekrar setViews
çağrılmadığı sürece zaman çizelgesinde görüneceğini unutmayın.
Doğrudan canlı kart yüzeyinin üzerine çizim yapma
Uygulamanız için daha sık güncelleme (saniyede birkaç kez) gerekiyorsa veya standart widget'ların desteklediğinden daha ayrıntılı grafikler oluşturmak istiyorsanız doğrudan oluşturmayı etkinleştirip kartın yüzeyine SurfaceHolder.Callback
ekleyin.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
Daha sonra, doğrudan arka plandaki bir mesaj dizisinin içindeki yüzeye veya harici etkinliklere (örneğin, sensör veya konum güncellemeleri) göre çizebilirsiniz. Kart görüntülenirken veya gizlenirken 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.
Canlı kart seçimi işleniyor
Canlı kart, kullanıcı karta dokunduğunda çalışacak bir işlem (etkinlik, hizmet veya yayın başlatmak için PendingIntent
) sağlamalıdır.
Normalde bu işlemi kullanarak seçenekler menüsünü görüntüleyen veya kullanıcıyı uygulamanızın başka bir bölümüne yönlendiren bir etkinlik başlatırsınız. En azından, kullanıcının canlı kartı zaman çizelgesinden kaldırmasına olanak tanıyan 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));
İşlem içermeyen canlı kartlar gösterilmez.
İç İçe Sınıflar | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | Canlı Kart.Yayınlama Modu | Yayınlandığında kartın kullanıcıya nasıl sunulacağını belirler. |
Sabitler | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Dize | ADDITIONAL_FROM_LIVECARD_VOICE | Intent kartı, canlı kart üzerinden ses kullanılarak etkinleştirildi. |
Kamu Kurucuları | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Herkese Açık Yöntemler | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Canlı Kart | |||||||||||
Yüzey Tutucu | |||||||||||
boolean | |||||||||||
geçersiz | |||||||||||
geçersiz |
publish(LiveCard.PublishMode modu)
|
||||||||||
Canlı Kart |
setAction(WaitIntent niyeti)
|
||||||||||
Canlı Kart |
setDirectrenderEnabled(boole etkinleştirme)
|
||||||||||
Canlı Kart |
setRenderer(GlRenderer oluşturucu)
|
||||||||||
Canlı Kart |
setViews(RemoteViews görünümleri)
|
||||||||||
Canlı Kart |
setVoiceActionEnabled (boole etkinleştirme)
|
||||||||||
geçersiz |
Devralınan Yöntemler | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Sabitler
Kamu Kurucuları
Herkese Açık Yöntemler
herkese açık LiveCard ek (Hizmet hizmeti)
Bu kart yayınlandığında, belirli bir hizmetin ön planda çalışacak şekilde ayarlanması için bir arka plan Service
ekleyin.
Bu canlı kart yayından kaldırıldığında hizmet otomatik olarak ön plandan kaldırılır.
Parametreler
hizmet | öngörecek şekilde ayarlanacak |
---|
İadeler
- arama zinciri oluşturmak için bu nesne
herkese açık SurfaceHolder getSurfaceHolder ()
Doğrudan oluşturma etkinleştirildiğinde, üzerinde işlem yapmak için Surface
özelliğine erişim izni verir.
Döndürülen SurfaceHolder
öğesinin, yönetilen yüzeye erişim için bir araç olarak kullanılması gerektiğini unutmayın. Yüzeyin şeklini ve türünü değiştirme yöntemleri işlemsizdir.
Bu nesne için geri çağırmaların kullanıcı arayüzü iş parçacığında yapılmadığını da unutmayın.
İlgili Konular
herkese açık boole yayınlandı ()
Kart şu anda yayınlanmışsa true
değerini döndürür.
herkese açık geçersiz gezinme ()
Kullanıcıyı zaman çizelgesindeki bu karta gönderir.
Dekoratif yastıklar
Yasa Dışı Durumİstisnası | Kart yayınlanmamışsa |
---|
herkese açık geçersiz yayınla (LiveCard.PublishMode modu)
Bu kartı zaman çizelgesinde yayınlar.
Kart yalnızca bir işlem varsa ve doğrudan oluşturma etkinleştirilmişse ya da uzak görünümler ayarlanmışsa gösterilir.
Parametreler
mod | kartın kullanıcıya nasıl sunulduğunu belirler |
---|
herkese açık LiveCard setAction (WaitIntent niyeti)
Kart seçildiğinde gerçekleştirilen işlemi değiştirir.
Parametreler
amaç | kart seçildiğinde tetiklenecek |
---|
İadeler
- arama zinciri oluşturmak için bu nesne
herkese açık LiveCard setDirectrenderEnabled (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ın yayınlanmadığı zaman çağrılabileceğini ve aksi takdirde istisnaya yol açabileceğini unutmayın.
Parametreler
enable | doğrudan oluşturmanın etkinleştirilip etkinleştirilmeyeceği |
---|
İadeler
- arama zinciri oluşturmak için bu nesne
İlgili Konular
herkese açık LiveCard setRenderer (GlRenderer oluşturucu)
OpenGL tabanlı bir oluşturucu ekler.
Oluşturucu, doğrudan oluşturma için istenen (otomatik olarak) bir yüzeye çizim yapmak üzere kullanılır.
İadeler
- arama zinciri oluşturmak için bu nesne
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 yaptı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 etkisi olmaz.
Parametreler
görüntüleme | kartın kullanıcı arayüzü |
---|
İadeler
- arama zinciri oluşturmak için bu nesne
İlgili Konular
herkese açık LiveCard setVoiceActionEnabled (boole etkinleştirme)
Kart zaman çizelgesinde gösterildiğinde sesli işlemi etkinleştirir.
Ayarlandığında kart, zaman çizelgesinde gösterildiğinde "ok cam"ı dinler ve bu koruyucu ifade söylendiğinde setAction(PendingIntent)
yöntemi tarafından belirlenen niyeti tetikler. Amaç, bağlamsal sesli menüler uygulayan bir etkinlik başlatırsa etkinlik ilk menü öğelerinde otomatik olarak açılır (ör. etkinliğin içinde "ok cam" söylenmiş gibi). Bu özellik, canlı kartlara içeriğe dayalı sesli menüler uygulamayı sağlar.
Parametreler
enable | sesli işlemin etkinleştirilip etkinleştirilmeyeceği |
---|
İadeler
- arama zinciri oluşturmak için bu nesne
İlgili Konular
herkese açık geçersiz yayından kaldır ()
Bu kartı zaman çizelgesinden yayından kaldırır.