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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Herkese Açık Yöntemler | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
void |
Gezinme()
|
||||||||||
void |
publish(LiveCard.PublishMode modu)
|
||||||||||
LiveCard |
setAction(PendingIntent intent)
|
||||||||||
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
Kamu Yüklenicileri
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
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
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.
İlgili Konular
herkese açık boole isPublished ()
Kart şu anda yayınlanmışsa true
değerini döndürür.
herkese açık void navigation ()
Kullanıcıyı zaman çizelgesinde bu karta gönderir.
Fırlatma
IllegalStateException | Kart yayınlanmamışsa |
---|
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 |
---|
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
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
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
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
İlgili Konular
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
herkese açık void yayından kaldır ()
Bu kartı zaman çizelgesinde yayından kaldırır.