Kartu Live
Dengan class ini, Anda dapat membuat kartu aktif dan memublikasikannya di linimasa.
Untuk informasi selengkapnya tentang cara membuat kartu live, lihat panduan developer Kartu live.
Masa aktif kartu live
Kartu live memerlukan konteks yang berjalan lama untuk memilikinya sepanjang waktu
dipublikasikan, jadi Anda harus mengelolanya di Service
latar belakang. Selanjutnya, Anda dapat memublikasikan kartu live segera setelah layanan dimulai atau sebagai respons terhadap peristiwa lain yang dipantau layanan. Demikian pula, Anda harus membatalkan publikasi kartu setelah kartu tidak lagi relevan atau saat layanan dihancurkan.
Saat memublikasikan kartu aktif, Anda dapat memilih pengaruhnya terhadap pengguna. Saat memublikasikan video secara otomatis, kartu akan dimasukkan ke dalam linimasa tanpa efek yang terlihat: pengguna harus menggeser ke kartu untuk melihatnya. Anda juga dapat menyetel kartu aktif secara otomatis tepat setelah kartu dipublikasikan. Hal ini sering kali berguna jika antarmuka pengguna utama aplikasi Anda adalah kartu aktif dan bukan aktivitas.
Menampilkan konten di kartu live
Kartu live dapat menampilkan konten dari resource tata letak atau dengan mengizinkan kode dirender langsung ke permukaan gambarnya. Pilih metode yang paling sesuai untuk aplikasi Anda berdasarkan seberapa sering Anda perlu mengupdate konten pada kartu dan apakah Anda merender widget atau grafik bentuk bebas secara umum.
Meluaskan tata letak menggunakan tampilan jarak jauh
Jika aplikasi Anda hanya memerlukan widget standar dan update yang jarang (sekitar beberapa detik atau
lebih lama antara refresh), maka buat kartu Anda dengan bantuan class RemoteViews
.
Objek RemoteViews
memungkinkan linimasa Glass, yang berjalan dalam proses terpisah dari
kode aplikasi Anda sendiri, 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 yang dibuat pada tampilan dengan memanggil metode set*
tidak akan terlihat di linimasa kecuali jika Anda secara eksplisit memanggil setViews
pada kartu live lagi untuk memaksa pembaruan.
Menggambar langsung di permukaan kartu live
Jika aplikasi Anda memerlukan update lebih sering (beberapa kali per detik) atau merender grafis yang lebih rumit daripada yang didukung oleh widget standar, aktifkan rendering langsung dan tambahkan SurfaceHolder.Callback
ke platform kartu.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
Anda kemudian dapat menggambar langsung di permukaan dalam thread latar belakang atau sebagai respons terhadap peristiwa eksternal (misalnya, pembaruan sensor atau lokasi). Gunakan metode surfaceCreated
dan 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 aktif
Kartu live harus menyediakan tindakan (PendingIntent
untuk memulai aktivitas, layanan, atau melakukan siaran) yang akan dijalankan saat pengguna mengetuk untuk memilih kartu.
Biasanya, Anda akan menggunakan tindakan ini untuk meluncurkan aktivitas yang menampilkan menu opsi atau mengarahkan pengguna ke bagian lain dari aplikasi Anda. Setidaknya, Anda harus menyediakan opsi
yang memungkinkan pengguna menghapus kartu 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 | EKSTRA_DARI_LIVECARD_VOICE | Boolean tambahan yang menunjukkan Intent diaktifkan oleh suara dari kartu aktif. |
Konstruktor Publik | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Metode Publik | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Kartu Live | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
void | |||||||||||
void |
publish(mode LiveCard.PublishMode)
|
||||||||||
Kartu Live |
setAction(intent PendingIntent)
|
||||||||||
Kartu Live |
setDirectRenderingEnabled(pengaktifan boolean)
|
||||||||||
Kartu Live |
setRenderer(perender GlRenderer)
|
||||||||||
Kartu Live |
setViews(RemoteViews tampilan)
|
||||||||||
Kartu Live |
setVoiceActionEnabled(pengaktifan boolean)
|
||||||||||
void |
Metode Turunan | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Konstanta
Konstruktor Publik
publik LiveCard (konteks Konteks, tag String)
Membuat kartu aktif dengan tag yang diberikan.
Harap diperhatikan bahwa kartu tidak akan muncul sampai kartu tersebut dipublikasikan secara eksplisit.
Parameter
context | konteks aplikasi |
---|---|
tag | tag non-null untuk kartu; ini untuk tujuan proses debug |
Metode Publik
publik LiveCard lampirkan (layananLayanan)
Lampirkan Service
latar belakang agar kartu ini
dipublikasikan, layanan tertentu akan disetel agar berjalan di latar depan.
Layanan akan otomatis dihapus dari latar depan saat kartu live ini dibatalkan publikasinya.
Parameter
layanan | akan ditetapkan untuk dijalankan di foregound |
---|
Hasil
- objek ini untuk perantaian panggilan
publik SurfaceHolder getSurfaceHolder ()
Jika rendering langsung diaktifkan, akan memberikan akses ke Surface
untuk menggambar.
Perhatikan bahwa SurfaceHolder
yang ditampilkan harus digunakan hanya sebagai sarana untuk mengakses platform terkelola. Metode untuk mengubah bentuk dan jenis permukaan adalah tanpa pengoperasian.
Perhatikan juga bahwa callback untuk objek ini tidak dibuat di UI thread.
Lihat Juga
publik boolean isPublished ()
Menampilkan true
jika kartu sedang dipublikasikan.
publik void navigasi ()
Mengarahkan pengguna ke kartu ini di linimasa.
Menampilkan
IllegalStateException | jika kartu tidak dipublikasikan |
---|
publik void publish (Mode Live.PublishMode)
Memublikasikan kartu ini ke linimasa.
Kartu hanya akan ditampilkan jika memiliki tindakan, dan jika rendering langsung diaktifkan atau tampilan jarak jauh telah ditetapkan.
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 (boolean aktifkan)
Mengaktifkan rendering langsung.
Dalam mode ini, konten kartu harus dirender langsung ke Surface
.
Perlu diperhatikan bahwa metode ini hanya dapat dipanggil jika kartu tidak dipublikasikan dan akan menampilkan pengecualian.
Parameter
aktifkan | apakah rendering langsung harus diaktifkan |
---|
Hasil
- objek ini untuk perantaian panggilan
Lihat Juga
publik LiveCard setRenderer (RendererRenderer)
Menambahkan perender berbasis OpenGL.
Perender akan digunakan untuk menggambar ke platform yang diminta (secara otomatis) untuk rendering langsung.
Hasil
- objek ini untuk perantaian panggilan
publik LiveCard setViews (RemoteViews tampilan)
Mengubah RemoteViews
yang digunakan untuk menampilkan UI kartu ini.
Metode ini juga harus dipanggil setelah melakukan perubahan apa pun secara langsung ke tampilan jarak jauh pada kartu yang dipublikasikan, atau perubahan tersebut tidak akan tercermin pada linimasa.
Metode ini tidak berpengaruh jika rendering langsung diaktifkan.
Parameter
penayangan | UI kartu |
---|
Hasil
- objek ini untuk perantaian panggilan
Lihat Juga
publik LiveCard setVoiceActionEnabled (boolean aktifkan)
Mengaktifkan voice action saat kartu ditampilkan di linimasa.
Saat ditetapkan, kartu akan mendeteksi "ok Glass" saat ditampilkan di linimasa dan,
jika frasa pelindung ini diucapkan, akan mengaktifkan intent yang telah disetel oleh
metode setAction(PendingIntent)
. Jika intent memulai suatu aktivitas yang mengimplementasikan menu suara kontekstual, aktivitas tersebut akan otomatis terbuka di item menu pertama (yaitu seolah-olah "ok Glass" diucapkan di dalam aktivitas itu sendiri). Fitur ini memungkinkan penerapan menu suara kontekstual pada kartu live.
Parameter
aktifkan | apakah voice action harus diaktifkan |
---|
Hasil
- objek ini untuk perantaian panggilan
Lihat Juga
publik void batalkan publikasi ()
Membatalkan publikasi kartu ini dari linimasa.