Mendukung layar yang terhubung

Layar terhubung memperluas pengalaman jendela desktop ke ponsel standar, sehingga pengguna dapat mengakses layar besar dari perangkat seluler mereka. Kemampuan ini membuka kemungkinan baru untuk interaksi aplikasi dan produktivitas pengguna.

Semua fitur unik jendela desktop berlaku untuk layar yang terhubung. Saat Anda menghubungkan ponsel ke layar, status ponsel tidak akan berubah, dan sesi desktop kosong akan dimulai di layar yang terhubung. Perangkat dan layar berfungsi sebagai dua sistem terpisah, dengan aplikasi khusus untuk setiap layar.

Gambar 1. Ponsel terhubung ke layar eksternal, dengan sesi desktop di layar saat ponsel mempertahankan statusnya sendiri.

Jika Anda menghubungkan perangkat yang mendukung mode jendela desktop, seperti tablet, ke monitor eksternal, sesi desktop akan diperluas ke kedua layar. Kedua layar kemudian berfungsi sebagai satu sistem berkelanjutan. Penyiapan ini memungkinkan jendela, konten, dan kursor bergerak bebas di antara kedua layar.

Gambar 2. Tablet terhubung ke monitor eksternal, yang memperluas sesi desktop di kedua layar.

Mendukung layar terhubung secara efektif memerlukan perhatian pada beberapa aspek desain dan penerapan aplikasi Anda. Praktik terbaik berikut memastikan pengalaman pengguna yang lancar dan produktif.

Menangani perubahan tampilan dinamis

Banyak aplikasi dibuat dengan asumsi bahwa objek Display dan karakteristiknya tidak akan berubah selama siklus proses aplikasi. Namun, saat pengguna menghubungkan atau memutuskan koneksi monitor eksternal, atau bahkan memindahkan jendela aplikasi di antara layar, objek Display yang mendasarinya dan terkait dengan konteks atau jendela aplikasi Anda dapat berubah. Properti layar, seperti ukuran, resolusi, kecepatan refresh, dukungan HDR, dan kepadatan, semuanya dapat berbeda. Misalnya, jika Anda melakukan hardcode nilai berdasarkan layar ponsel, tata letak Anda kemungkinan akan rusak di layar eksternal.

Layar eksternal juga dapat memiliki kepadatan piksel yang sangat berbeda. Anda harus memastikan aplikasi merespons dengan benar terhadap perubahan kepadatan. Hal ini melibatkan penggunaan piksel kepadatan mandiri (dp) untuk tata letak, menyediakan resource khusus kepadatan, dan memastikan UI Anda diskalakan dengan tepat.

Menggunakan konteks yang tepat

Menggunakan konteks yang tepat sangat penting dalam lingkungan multi-tampilan. Saat mengakses resource, konteks aktivitas (yang ditampilkan) berbeda dengan konteks aplikasi (yang tidak ditampilkan).

Konteks aktivitas berisi informasi tentang tampilan dan selalu disesuaikan untuk area tampilan tempat aktivitas muncul. Hal ini memungkinkan Anda mendapatkan informasi yang benar tentang kepadatan tampilan atau metrik jendela aplikasi Anda. Selalu gunakan konteks aktivitas (atau konteks berbasis UI lainnya) untuk mendapatkan informasi tentang jendela atau tampilan saat ini. Hal ini juga memengaruhi beberapa API sistem yang menggunakan informasi dari konteks.

Mendapatkan informasi tampilan

Anda dapat menggunakan class Display untuk mendapatkan informasi tentang tampilan tertentu, seperti ukuran atau flag yang menunjukkan apakah tampilan aman. Untuk mendapatkan tampilan yang tersedia, gunakan layanan sistem DisplayManager:

val displayManager = getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
val displays = displayManager.getDisplays()

Mengelola peluncuran dan konfigurasi aktivitas

Dengan layar yang terhubung, aplikasi dapat menentukan layar mana yang harus dijalankan aplikasi saat diluncurkan atau saat membuat aktivitas lain. Perilaku ini bergantung pada mode peluncuran aktivitas yang ditentukan dalam file manifes, dan pada flag intent serta opsi yang ditetapkan oleh entity yang meluncurkan aktivitas.

Saat aktivitas berpindah ke tampilan sekunder, aplikasi Anda dapat mengalami update konteks, perubahan ukuran jendela, serta perubahan konfigurasi dan resource. Jika aktivitas menangani perubahan konfigurasi, aktivitas akan diberi tahu di onConfigurationChanged(). Jika tidak, aktivitas akan diluncurkan kembali.

Jika mode peluncuran yang dipilih untuk suatu aktivitas memungkinkan beberapa instance, peluncuran pada layar sekunder dapat membuat instance aktivitas baru. Kedua aktivitas dilanjutkan secara bersamaan, yang dapat bermanfaat untuk skenario multitasking tertentu.

Anda dapat meluncurkan aktivitas di layar tertentu menggunakan ActivityOptions:

val options = ActivityOptions.makeBasic()
options.setLaunchDisplayId(targetDisplay.displayId)
startActivity(intent, options.toBundle())

Menghindari daftar yang diizinkan perangkat

Aplikasi terkadang membatasi UI dan fitur layar besar untuk memilih perangkat melalui daftar yang diizinkan atau dengan memeriksa ukuran tampilan bawaan. Dengan layar yang terhubung, pendekatan ini tidak lagi efektif, karena hampir semua perangkat baru dapat dihubungkan ke layar besar. Desain aplikasi Anda agar responsif dan dapat disesuaikan dengan berbagai ukuran dan kepadatan layar.

Mendukung periferal eksternal

Saat terhubung ke layar eksternal, pengguna sering kali membuat lingkungan yang lebih mirip desktop. Hal ini sering kali melibatkan penggunaan keyboard, mouse, trackpad, webcam, mikrofon, dan speaker eksternal. Anda harus memastikan aplikasi berfungsi dengan lancar dengan periferal ini. Hal ini mencakup penanganan pintasan keyboard, pengelolaan interaksi kursor mouse, dukungan kamera atau mikrofon eksternal yang benar, dan mengikuti pemilihan rute output audio. Untuk mengetahui detail selengkapnya, lihat Kompatibilitas input di perangkat layar besar.

Meningkatkan produktivitas pengguna

Layar terhubung memberikan peluang signifikan untuk meningkatkan produktivitas pengguna. Sekarang Anda memiliki alat untuk mem-build aplikasi seluler yang dapat menawarkan pengalaman yang sebanding dengan aplikasi desktop. Pertimbangkan untuk menerapkan fitur berikut guna meningkatkan produktivitas pengguna:

  • Izinkan pengguna membuka beberapa instance aplikasi yang sama. Hal ini sangat berharga untuk tugas seperti membandingkan dokumen, mengelola percakapan yang berbeda, atau melihat beberapa file secara bersamaan.
  • Memungkinkan pengguna berbagi data lengkap di dalam dan di luar aplikasi Anda dengan tarik lalu lepas.
  • Bantu pengguna mempertahankan alur kerja mereka di seluruh perubahan konfigurasi dengan menerapkan sistem pengelolaan status yang andal.

Dengan mengikuti panduan ini dan menggunakan contoh kode yang disediakan, Anda dapat membuat aplikasi yang beradaptasi dengan lancar ke layar terhubung, sehingga menawarkan pengalaman yang lebih kaya dan lebih produktif kepada pengguna.