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