LiveCard
Kelas ini memungkinkan Anda membuat kartu aktif dan memublikasikannya di linimasa.
Untuk informasi selengkapnya tentang cara membuat kartu aktif, lihat Panduan developer kartu live.
Masa berlaku kartu live
Kartu live memerlukan konteks jangka panjang untuk memilikinya selama
dipublikasikan, jadi Anda harus mengelolanya di latar belakang Service
. Anda kemudian dapat
memublikasikan kartu langsung segera setelah layanan dimulai atau sebagai respons terhadap peristiwa lain yang
pemantauan layanan. Demikian juga, Anda harus membatalkan publikasi kartu setelah tidak lagi relevan atau jika
layanan dihancurkan.
Saat memublikasikan kartu live, Anda harus memilih bagaimana pengaruhnya terhadap pengguna. Saat memublikasikan secara otomatis, kartu akan dimasukkan ke dalam linimasa tanpa adanya efek yang terlihat: pengguna harus menggeser untuk kartu untuk melihatnya. Anda juga dapat membuat kartu aktif secara otomatis ditampilkan tepat setelah dipublikasikan. Hal ini sering kali berguna saat antarmuka pengguna utama aplikasi Anda adalah kartu live dan bukan suatu aktivitas.
Menampilkan konten di kartu aktif
Kartu aktif dapat menampilkan konten dari resource tata letak atau dengan memungkinkan kode Anda dirender langsung ke permukaan gambarnya. Memilih metode yang paling sesuai untuk aplikasi Anda berdasarkan tentang seberapa sering Anda perlu memperbarui konten pada kartu dan apakah {i>widget<i} atau grafik bentuk bebas.
Meng-inflate tata letak menggunakan tampilan jarak jauh
Jika aplikasi Anda hanya memerlukan widget standar dan update tidak sering (sekitar beberapa detik atau
lebih lama antara dimuat ulang), lalu buat kartu dengan bantuan class RemoteViews
.
Objek RemoteViews
memungkinkan linimasa Glass, yang berjalan dalam proses terpisah dari
kode aplikasi Anda sendiri, meng-inflate tata letak yang telah Anda buat.
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
Perhatikan bahwa setelah kartu yang menggunakan RemoteViews
dipublikasikan, perubahan dilakukan pada penayangan oleh
memanggil metode set*
tidak akan terlihat di linimasa kecuali jika Anda secara eksplisit memanggil
setViews
pada kartu aktif lagi untuk memaksa pembaruan.
Menggambar langsung di permukaan kartu live
Jika aplikasi Anda memerlukan update yang lebih sering (beberapa kali per detik) atau rendering lebih banyak
grafis yang rumit daripada yang didukung widget standar, memungkinkan rendering langsung, dan menambahkan
SurfaceHolder.Callback
ke permukaan kartu.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
Anda kemudian dapat menggambar langsung pada platform di dalam thread latar belakang atau sebagai respons terhadap
peristiwa (misalnya, pembaruan sensor atau lokasi). Gunakan surfaceCreated
dan
Metode surfaceDestroyed
untuk memulai dan menghentikan logika rendering saat kartu
ditampilkan atau disembunyikan.
Perhatikan bahwa metode callback holder platform tidak dipanggil di UI thread utama.
Menangani pemilihan kartu live
Kartu live harus menyediakan tindakan (PendingIntent
untuk memulai aktivitas,
layanan, atau melakukan siaran) yang akan dijalankan ketika pengguna mengetuk untuk memilih kartu.
Biasanya Anda akan menggunakan tindakan ini untuk meluncurkan aktivitas yang menampilkan menu opsi atau mengambil
pengguna ke bagian lain dari aplikasi Anda. Setidaknya, Anda harus
memberikan pilihan
yang memungkinkan pengguna menghapus
kartu yang aktif dari linimasa.
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
Kartu live yang tidak memiliki tindakan tidak akan ditampilkan.
Class Bertingkat | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | LiveCard.PublishMode | Menentukan cara kartu ditampilkan kepada pengguna saat dipublikasikan. |
Konstanta | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | Tambahan Boolean yang menunjukkan Intent diaktifkan dengan suara dari kartu aktif. |
Konstruktor Publik | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Metode Publik | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
void |
navigate()
|
||||||||||
void |
publish(mode LiveCard.PublishMode)
|
||||||||||
LiveCard |
setAction(intent PendingIntent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(boolean memungkinkan)
|
||||||||||
LiveCard |
setRenderer(perender GlRenderer)
|
||||||||||
LiveCard |
setViews(tampilan RemoteViews)
|
||||||||||
LiveCard |
setVoiceActionEnabled(boolean diaktifkan)
|
||||||||||
void |
Metode Turunan | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Konstanta
Konstruktor Publik
Metode Publik
publik LiveCard lampirkan (Layanan)
Lampirkan latar belakang Service
agar saat kartu ini mendapatkan
dipublikasikan, layanan yang diberikan akan disetel untuk berjalan di latar depan.
Layanan akan otomatis dihapus dari latar depan jika kartu aktif dibatalkan publikasinya.
Parameter
layanan | akan ditetapkan untuk berjalan di foregound |
---|
Hasil
- objek ini untuk perantaian panggilan
publik SurfaceHolder getSurfaceHolder ()
Jika rendering langsung diaktifkan, memberikan akses ke Surface
yang akan digunakan untuk menggambar.
Perhatikan bahwa SurfaceHolder
yang ditampilkan harus digunakan hanya sebagai cara untuk mengakses
platform terkelola ini. Metode untuk mengubah bentuk dan jenis permukaan tidak dioperasikan.
Perhatikan juga bahwa callback untuk objek ini tidak dibuat di UI thread.
Lihat Juga
publik boolean isPublished ()
Menampilkan true
jika kartu sedang dipublikasikan.
publik kosong navigasi ()
Mengirim pengguna ke kartu ini di linimasa.
Menampilkan
IllegalStateException | jika kartu tidak dipublikasikan |
---|
publik kosong publikasikan (mode LiveCard.PublishMode)
Memublikasikan kartu ini ke linimasa.
Kartu hanya akan ditampilkan jika memiliki tindakan, dan jika rendering langsung diaktifkan atau tampilan jarak jauh telah disetel.
Parameter
mode | menentukan cara kartu ditampilkan kepada pengguna |
---|
publik LiveCard setAction (PendingIntent intent)
Mengubah tindakan yang diambil saat kartu dipilih.
Parameter
maksud | akan diaktifkan saat kartu dipilih |
---|
Hasil
- objek ini untuk perantaian panggilan
publik LiveCard setDirectRenderingEnabled (diaktifkan boolean)
Mengaktifkan rendering langsung.
Dalam mode ini, konten kartu harus dirender langsung menjadi Surface
.
Perhatikan bahwa metode ini hanya dapat dipanggil ketika kartu tidak dipublikasikan dan akan menampilkan pengecualian.
Parameter
aktifkan | apakah rendering langsung harus diaktifkan atau tidak |
---|
Hasil
- objek ini untuk perantaian panggilan
Lihat Juga
publik LiveCard setRenderer (GlRenderer Perender)
Menambahkan perender berbasis OpenGL.
Perender akan digunakan untuk menggambar ke platform yang diminta (secara otomatis) untuk permintaan proses rendering.
Hasil
- objek ini untuk perantaian panggilan
publik LiveCard setViews (RemoteViews)
Mengubah RemoteViews
yang digunakan untuk menampilkan UI kartu ini.
Metode ini juga harus dipanggil setelah membuat perubahan langsung pada tampilan jarak jauh kartu yang dipublikasikan, atau perubahan tersebut tidak akan tercermin di linimasa.
Metode ini tidak berpengaruh jika rendering langsung diaktifkan.
Parameter
penayangan | UI kartu |
---|
Hasil
- objek ini untuk perantaian panggilan
Lihat Juga
publik LiveCard setVoiceActionEnabled (diaktifkan boolean)
Mengaktifkan voice action saat kartu ditampilkan di linimasa.
Saat disetel, kartu akan mendengarkan "ok kaca" ketika ditampilkan di garis waktu,
ketika frasa penjaga ini diucapkan, akan mengaktifkan maksud yang telah ditetapkan oleh
Metode setAction(PendingIntent)
. Jika intent memulai suatu
yang menerapkan menu suara kontekstual, aktivitas akan secara otomatis
terbuka pada item menu pertama (yaitu seolah-olah "ok kaca" diucapkan di dalam aktivitas
itu sendiri). Fitur ini memungkinkan penerapan menu suara kontekstual pada kartu live.
Parameter
aktifkan | apakah voice action harus diaktifkan atau tidak |
---|
Hasil
- objek ini untuk perantaian panggilan
Lihat Juga
publik kosong batalkan publikasi ()
Membatalkan publikasi kartu ini dari linimasa.