Kartu Live

Ditambahkan di API level XE12
kelas publik

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
LiveCard(konteks Konteks, tag String)
Metode Publik
LiveCard
Lampirkan(layanan Layanan)
SurfaceHolder
boolean
void
void
LiveCard
LiveCard
setDirectRenderingEnabled(boolean memungkinkan)
LiveCard
LiveCard
setViews(tampilan RemoteViews)
LiveCard
setVoiceActionEnabled(boolean diaktifkan)
void
Metode Turunan

Konstanta

Ditambahkan di API level XE21

publik statis final String EXTRA_FROM_LIVECARD_VOICE

Tambahan Boolean yang menunjukkan Intent diaktifkan dengan suara dari kartu live.

Nilai Konstanta: &quot;android.intent.extra.EXTRA_FROM_LIVECARD&quot;

Konstruktor Publik

Ditambahkan di API level XE16

publik LiveCard (Konteks Konteks, tag String)

Membuat kartu live dengan tag yang diberikan.

Perhatikan bahwa kartu tidak akan muncul sebelum dipublikasikan secara eksplisit.

Parameter
context konteks aplikasi
tag tag non-null untuk kartu; ini untuk tujuan proses debug

Metode Publik

Ditambahkan di API level XE16

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
Ditambahkan di API level XE12

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.

Ditambahkan di API level XE12

publik boolean isPublished ()

Menampilkan true jika kartu sedang dipublikasikan.

Ditambahkan di API level XE16

publik kosong navigasi ()

Mengirim pengguna ke kartu ini di linimasa.

Menampilkan
IllegalStateException jika kartu tidak dipublikasikan
Ditambahkan di API level XE12

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
Ditambahkan di API level XE12

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
Ditambahkan di API level XE12

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
Ditambahkan di API level XE16

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
Ditambahkan di API level XE12

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
Ditambahkan di API level XE21

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
Ditambahkan di API level XE12

publik kosong batalkan publikasi ()

Membatalkan publikasi kartu ini dari linimasa.