Ringkasan Fitur dan API

Android 12 memperkenalkan fitur dan API baru yang hebat bagi para developer. Bagian di bawah ini membantu Anda mempelajari fitur-fitur yang tersedia untuk aplikasi Anda, serta mulai menggunakan API yang terkait.

Untuk mengetahui daftar mendetail tentang API yang baru, diubah, dan dihapus, baca laporan perbedaan API. Untuk mengetahui detail tentang API baru, buka referensi API Android — API baru ditandai agar terlihat. Selain itu, untuk mempelajari area mana saja dalam aplikasi Anda yang dapat terpengaruh oleh perubahan, baca tentang perubahan perilaku Android 12 untuk aplikasi yang menargetkan Android 12 dan untuk semua aplikasi.

Pengalaman pengguna

Material You

Android 12 memperkenalkan bahasa desain baru yang disebut Material You, yang akan membantu Anda mem-build aplikasi yang lebih dipersonalisasi dan menarik. Untuk menghadirkan semua update Desain Material 3 terbaru ke dalam aplikasi Anda, coba Komponen Desain Material versi alfa.

Material You

Peningkatan widget

Android 12 mengubah API Widget yang ada untuk menghadirkan pengalaman yang lebih baik bagi pengguna dan developer di platform dan peluncur. Kami telah membuat panduan untuk membantu memastikan bahwa widget Anda kompatibel dengan Android 12 dan untuk memperbarui widget tersebut dengan fitur baru.

Lihat peningkatan widget Android 12 untuk informasi selengkapnya.

Penyisipan konten lengkap

Android 12 memperkenalkan API terpadu baru yang memungkinkan aplikasi Anda menerima konten lengkap dari sumber yang tersedia, seperti papan klip, keyboard, atau tarik lalu lepas.

Untuk mengetahui informasi selengkapnya, lihat Menerima konten lengkap.

API layar pembuka aplikasi

Android 12 memperkenalkan animasi peluncuran aplikasi baru untuk semua aplikasi yang menyertakan gerakan ke dalam aplikasi dari titik peluncuran, layar pembuka yang menampilkan ikon aplikasi, serta transisi ke aplikasi tersebut. Lihat panduan developer layar pembuka untuk detail selengkapnya.

API sudut bulat

Android 12 memperkenalkan RoundedCorner dan WindowInsets.getRoundedCorner(int position), yang memberikan radius dan titik tengah untuk sudut bulat.

Untuk mengetahui informasi selengkapnya, lihat Sudut bulat.

Pengalaman sentuhan yang kaya

Android 12 memperluas alat untuk membuat respons haptik yang informatif untuk peristiwa UI, efek yang imersif dan menyenangkan untuk game, serta haptic yang menarik perhatian untuk produktivitas.

Efek aktuator

Android 12 menambahkan efek ekspresif seperti tick rendah yang memanfaatkan bandwidth frekuensi yang lebih luas dari aktuator terbaru. Developer game kini dapat mengakses beberapa aktuator berbeda secara terpisah di pengontrol game untuk memberikan efek yang sama secara sinkron atau efek sentuhan yang berbeda pada beberapa aktuator. Untuk developer, sebaiknya gunakan konstanta dan primitif sebagai komponen penyusun untuk efek sentuhan yang kaya - konstanta untuk meningkatkan peristiwa UI dan alat penggabung efek haptik guna mengurutkan primitif untuk efek yang lebih kompleks. API ini tersedia untuk dicoba di perangkat Pixel 4, dan kami terus bekerja sama dengan partner pembuat perangkat untuk menghadirkan dukungan sentuhan terbaru kepada pengguna di seluruh ekosistem.

Efek haptik yang digabungkan dengan audio

Aplikasi Android 12 dapat membuat respons haptik yang berasal dari sesi audio menggunakan getaran ponsel. Dengan begitu, Anda memiliki kesempatan untuk memberikan pengalaman bermain game dan mendengarkan audio yang lebih imersif. Misalnya, nada dering yang ditingkatkan via sentuhan dapat membantu mengidentifikasi penelepon, atau game mengemudi dapat menyimulasikan nuansa medan yang kasar.

Baca dokumentasi referensi HapticGenerator untuk mengetahui informasi selengkapnya.

AppSearch

Android 12 memperkenalkan AppSearch, sebuah mesin telusur di perangkat dengan performa tinggi, sebagai layanan sistem. AppSearch memungkinkan aplikasi mengindeks data terstruktur dan menelusurinya dengan kemampuan penelusuran teks lengkap bawaan. Selain itu, AppSearch mendukung fitur penelusuran native, seperti pengindeksan dan pengambilan yang sangat efisien, dukungan multibahasa, dan peringkat relevansi.

Diagram yang menggambarkan pengindeksan dan penelusuran dalam AppSearch

AppSearch tersedia dalam dua ragam: indeks lokal untuk aplikasi Anda yang kompatibel dengan Android versi lama, atau indeks terpusat yang dikelola untuk seluruh sistem di Android 12. Dengan menggunakan indeks pusat, aplikasi Anda dapat mengizinkan datanya ditampilkan di platform UI sistem oleh komponen inteligensi yang telah diinstal di sistem. Data yang ditampilkan pada platform UI sistem bergantung pada OEM. Selain itu, aplikasi Anda dapat berbagi data secara aman dengan aplikasi lain, agar aplikasi tersebut juga dapat menelusuri data tersebut.

Pelajari AppSearch lebih lanjut di panduan developer, lalu mulailah menggunakannya dengan library AppSearch Jetpack, yang menyediakan platform API yang cocok untuk developer serta dukungan pemroses anotasi.

Mode Game

Dengan Game Mode API dan intervensi Mode Game, Anda dapat mengoptimalkan gameplay dengan memprioritaskan karakteristik, seperti performa atau masa pakai baterai berdasarkan setelan pengguna atau konfigurasi khusus game.

Untuk mengetahui informasi selengkapnya, lihat Mode Game.

Rekomendasi dan peningkatan fitur picture-in-picture (PiP)

Android 12 memperkenalkan peningkatan berikut untuk mode PiP:

Dukungan untuk gestur PiP baru

Android 12 kini mendukung gestur sembunyi dan cubit untuk memperbesar untuk jendela PiP:

  • Untuk menyembunyikan jendela, pengguna dapat menarik jendela ke tepi kiri atau kanan. Untuk membatalkan penyembunyian batas jendela, pengguna dapat mengetuk bagian jendela yang disembunyikan atau menyingkapnya.

  • Pengguna kini dapat mengubah ukuran jendela PiP menggunakan cubit untuk memperbesar.

Android 12 menambahkan peningkatan kosmetik yang signifikan ke transisi animasi antara jendela layar penuh dan PiP. Sebaiknya implementasikan semua perubahan yang berlaku. Setelah melakukannya, perubahan ini akan otomatis diskalakan ke perangkat layar besar seperti perangkat foldable dan tablet tanpa perlu pekerjaan lebih lanjut.

Fitur tersebut adalah sebagai berikut:

Notifikasi panggilan telepon baru memungkinkan untuk menentukan urutan panggilan masuk

Android 12 menambahkan gaya notifikasi baru Notification.CallStyle untuk panggilan telepon. Dengan menggunakan template ini, aplikasi Anda akan dapat menunjukkan pentingnya panggilan aktif dengan menampilkan chip yang muncul, yang menunjukkan waktu panggilan di status bar. Pengguna dapat mengetuk chip ini untuk kembali ke panggilannya.

Karena panggilan masuk dan sedang berlangsung merupakan yang hal paling penting bagi pengguna, notifikasi ini diberi urutan teratas pada menu. Urutan ini juga memungkinkan sistem untuk meneruskan panggilan yang diprioritaskan ini ke perangkat lain.

Terapkan kode berikut untuk semua jenis panggilan.

Kotlin

// Create a new call with the user as caller.
val incoming_caller = Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build()

Java

// Create a new call with the user as caller.
Person incoming_caller = new Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build();

Gunakan forIncomingCall() untuk membuat notifikasi gaya panggilan untuk panggilan masuk.

Kotlin

// Create a call style notification for an incoming call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller)

Java

// Create a call style notification for an incoming call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller);

Gunakan forOngoingCall() untuk membuat notifikasi gaya panggilan pada panggilan yang sedang berlangsung.

Kotlin

// Create a call style notification for an ongoing call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller)

Java

// Create a call style notification for an ongoing call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller);

Gunakan forScreeningCall() untuk membuat notifikasi gaya panggilan guna menyaring panggilan.

Kotlin

// Create a call style notification for screening a call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller)

Java

Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller);

Dukungan gambar yang diperkaya untuk notifikasi

Di Android 12, Anda kini dapat memperkaya pengalaman notifikasi aplikasi dengan menyediakan gambar animasi di notifikasi MessagingStyle() dan BigPictureStyle() . Selain itu, aplikasi Anda kini dapat memungkinkan pengguna mengirim pesan gambar saat mereka membalas pesan dari menu notifikasi.

Peningkatan mode imersif untuk navigasi gestur

Android 12 menggabungkan perilaku yang ada untuk memudahkan pengguna melakukan perintah navigasi gestur saat dalam mode imersif. Selain itu, Android 12 menyediakan perilaku kompatibilitas mundur untuk mode imersif melekat.

Berbagi URL terbaru (khusus Pixel)

Pada perangkat Pixel, pengguna kini dapat berbagi link ke konten web yang baru-baru ini dilihat langsung dari layar Terbaru. Setelah mengunjungi konten dalam aplikasi, pengguna dapat menggeser ke layar Terbaru dan menemukan aplikasi tempat mereka melihat konten, lalu mengetuk tombol link untuk menyalin atau membagikan URL.

Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan berbagi URL terbaru.

Keamanan dan privasi

Dasbor Privasi

Linimasa vertikal menampilkan berbagai aplikasi yang telah mengakses informasi lokasi, dan waktu terjadinya akses tersebut
Gambar 1. Layar penggunaan lokasi, bagian dari Dasbor Privasi.

Pada perangkat didukung yang menjalankan Android 12 atau yang lebih baru, layar Dasbor Privasi muncul di setelan sistem. Di layar ini, pengguna dapat mengakses layar terpisah yang muncul saat aplikasi mengakses informasi lokasi, kamera, dan mikrofon. Setiap layar menampilkan linimasa saat aplikasi yang berbeda telah mengakses jenis data tertentu. Gambar 1 menunjukkan linimasa akses data untuk informasi lokasi.

Aplikasi Anda dapat memberikan alasan bagi pengguna untuk membantu mereka memahami mengapa aplikasi Anda mengakses informasi lokasi, kamera, atau mikrofon. Alasan ini dapat muncul di layar Dasbor Privasi yang baru, layar izin aplikasi, atau keduanya.

Izin Bluetooth

Android 12 memperkenalkan izin BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, dan BLUETOOTH_CONNECT . Izin ini mempermudah aplikasi yang menargetkan Android 12 untuk berinteraksi dengan perangkat Bluetooth, terutama untuk aplikasi yang tidak memerlukan akses ke lokasi perangkat.

Memperbarui pernyataan izin Bluetooth aplikasi Anda

Guna menyiapkan perangkat untuk menargetkan Android 12 atau yang lebih baru, perbarui logika aplikasi Anda. Dibandingkan mendeklarasikan kumpulan izin Bluetooth lama, deklarasikan kumpulan izin Bluetooth yang lebih modern.

Pencarian grup izin

Di Android 12 atau yang lebih baru, Anda dapat mengkueri cara sistem mengatur izin yang disediakan platform ke dalam grup izin:

Menyembunyikan jendela overlay aplikasi

Untuk memberi developer kontrol lebih besar atas apa yang dilihat pengguna saat mereka berinteraksi dengan aplikasi developer, Android 12 memperkenalkan kemampuan untuk menyembunyikan jendela overlay yang digambar oleh aplikasi yang memiliki izin SYSTEM_ALERT_WINDOW.

Setelah menyatakan izin HIDE_OVERLAY_WINDOWS, suatu aplikasi dapat memanggil setHideOverlayWindows() untuk menunjukkan bahwa semua jendela dengan jenis TYPE_APPLICATION_OVERLAY harus disembunyikan saat jendela aplikasi terlihat. Aplikasi dapat memilih untuk melakukannya saat menampilkan layar sensitif, seperti alur konfirmasi transaksi.

Aplikasi yang menampilkan jendela jenis TYPE_APPLICATION_OVERLAY harus mempertimbangkan alternatif yang mungkin lebih sesuai untuk kasus penggunaannya, seperti picture-in-picture atau balon.

Flag perlindungan izin penanda tangan yang diketahui

Mulai dari Android 12, atribut knownCerts untuk izin level tanda tangan memungkinkan Anda melihat ringkasan sertifikat tanda tangan yang diketahui pada saat deklarasi.

Aplikasi Anda dapat mendeklarasikan atribut ini dan menggunakan flag knownSigner untuk memungkinkan perangkat dan aplikasi memberikan izin tanda tangan ke aplikasi lain, tanpa harus menandatangani aplikasi di waktu produksi dan pengiriman perangkat.

Pengesahan properti perangkat

Android 12 memperluas rangkaian aplikasi yang dapat memverifikasi properti perangkat yang berada dalam sertifikat pengesahan saat aplikasi ini membuat kunci baru.

Mulai Android 9 (API level 28), pemilik kebijakan perangkat (DPO) yang menggunakan Keymaster 4.0 atau yang lebih baru dapat memverifikasi properti perangkat di sertifikat pengesahan ini. Mulai di Android 12, aplikasi apa pun yang menargetkan Android 12 (API level 31) atau yang lebih baru dapat menjalankan verifikasi ini menggunakan metode setDevicePropertiesAttestationIncluded().

Properti perangkat yang dihasilkan mencakup kolom Build berikut:

  • BRAND
  • DEVICE
  • MANUFACTURER
  • MODEL
  • PRODUCT

Tindakan notifikasi layar penguncian aman

Mulai di Android 12, class Notification.Action.Buildermendukung metode setAuthenticationRequired() yang memungkinkan aplikasi Anda mewajibkan perangkat dibuka kuncinya sebelum aplikasi memanggil tindakan notifikasi tertentu. Metode ini membantu menambahkan lapisan keamanan tambahan pada notifikasi di perangkat yang terkunci.

String yang dapat dilokalkan untuk BiometricPrompt

Android 12 memperkenalkan API baru untuk membantu Anda mengoptimalkan pengalaman pengguna autentikasi biometrik aplikasi Anda. Class bertingkat BiometricManager.Strings yang baru menyertakan getButtonLabel(), getPromptMessage(), dan getSettingName(), yang memungkinkan aplikasi Anda mengambil label tombol yang dapat dibaca pengguna dan dilokalkan, pesan perintah, atau nama setelan aplikasi. Gunakan label ini untuk membuat petunjuk untuk pengguna yang lebih akurat dan khusus untuk metode autentikasi biometrik yang digunakan, seperti "Gunakan face unlock" atau "Gunakan sidik jari untuk melanjutkan".

Deteksi phishing di aplikasi pesan (khusus Pixel)

Pengguna melihat pesan seperti ini saat pesan yang mencurigakan terdeteksi.

Pada perangkat Pixel yang didukung, Android 12 menjalankan deteksi phishing pada pesan yang diterima di aplikasi pesan populer. Sistem menggunakan machine learning di perangkat untuk mendeteksi aktivitas yang mencurigakan. Saat terdeteksi, sistem akan menampilkan overlay keamanan di atas UI aplikasi pesan untuk memperingatkan pengguna. Misalnya, deteksi phishing dapat memperingatkan pengguna tentang potensi risiko berikut:

  • Permintaan yang mencurigakan, seperti mengirim kode, uang, atau sejenisnya
  • URL tidak tepercaya
  • Lampiran berbahaya
  • Link ke aplikasi berbahaya

Selain memperingatkan pengguna, overlay juga memungkinkan pengguna melaporkan pesan yang mencurigakan dan memberikan masukan tentang peringatan yang dikeluarkan oleh sistem.

Developer dapat memilih untuk tidak menggunakan fitur ini dengan menambahkan tag metadata baru termasuk string com.google.android.ALLOW_PHISHING_DETECTION dalam file manifes aplikasinya. Contoh:

<manifest>
    <application android:name="com.messagingapp">
        <meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />

    </application>
</manifest>

Media

Transcoding media yang kompatibel

Mulai dari Android 12 (API level 31), sistem dapat otomatis melakukan transcoding video HEVC(H.265) dan HDR (HDR10 dan HDR10+) yang direkam di perangkat menjadi AVC (H.264), format yang kompatibel dengan berbagai versi pemutar standar. Cara ini memanfaatkan codec modern jika tersedia tanpa mengorbankan kompatibilitas dengan versi aplikasi yang lebih lama.

Lihat transcoding media yang kompatibel untuk mengetahui detail selengkapnya.

Class performa

Android 12 memperkenalkan standar yang disebut class performa. Class performa akan menentukan kemampuan hardware di luar persyaratan dasar Android. Setiap perangkat Android akan mendeklarasikan class performa yang didukungnya. Developer dapat memeriksa class performa perangkat saat runtime dan memberikan upgrade pengalaman guna memanfaatkan kemampuan perangkat secara penuh.

Lihat Class performa untuk mengetahui detail selengkapnya.

Peningkatan encoding video

Android 12 menentukan kumpulan kunci standar untuk mengontrol nilai parameter kuantisasi (QP) untuk encoding video yang akan memungkinkan developer menghindari kode khusus vendor.

Kunci baru tersedia di MediaFormat API dan juga di library NDK Media.

Dimulai dengan encoder video Android 12 yang menerapkan batas kualitas minimum. Ini menjamin pengguna tidak akan mendapatkan kualitas yang sangat rendah saat mengenkode video dengan kompleksitas adegan yang tinggi.

Fokus audio

Mulai Android 12 (API level 31), saat aplikasi meminta fokus audio saat aplikasi lain memiliki fokus dan sedang melakukan pemutaran, sistem akan memudarkan aplikasi yang sedang diputar.

Lihat Fokus audio di Android 12 dan yang lebih baru untuk detail selengkapnya.

Update MediaDrm

Untuk menentukan apakah komponen decoder aman diperlukan dengan MediaDrm API saat ini, Anda harus mengikuti langkah-langkah berikut:

  1. Buat MediaDrm.
  2. Buka sesi untuk mendapatkan ID sesi.
  3. Buat MediaCrypto menggunakan ID sesi.
  4. Panggil MediaCrypto.requiresSecureDecoderComponent(mimeType).

Dengan metode baru requiresSecureDecoder(@NonNull String mime) dan requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level), Anda dapat menentukannya segera setelah membuat MediaDrm.

Kamera

Ekstensi vendor Camera2

Banyak partner produsen perangkat kami telah membuat ekstensi kamera kustom—seperti Bokeh, HDR, Mode malam, dan lain-lain—yang mereka inginkan agar digunakan aplikasi untuk menciptakan pengalaman yang berbeda di perangkat mereka. Library CameraX sudah mendukung ekstensi vendor kustom ini. Di Android 12, ekstensi vendor ini kini langsung ditampilkan di platform.

Penambahan ini membantu aplikasi yang memiliki implementasi Camera2 yang kompleks untuk memanfaatkan ekstensi vendor tanpa harus membuat perubahan signifikan pada kode lama. Camera2 Extension API mengekspos kumpulan ekstensi yang sama persis seperti di CameraX, dan semuanya sudah didukung di banyak perangkat berbeda, sehingga Anda dapat menggunakannya tanpa konfigurasi tambahan.

Untuk mengetahui informasi selengkapnya, lihat CameraExtensionCharacteristics.

Dukungan sensor kamera Quad Bayer

Banyak perangkat Android saat ini dilengkapi dengan sensor kamera beresolusi tinggi biasanya dengan pola Quad atau Nona Bayer, dan perangkat ini menawarkan fleksibilitas tinggi dalam hal kualitas gambar dan performa cahaya yang rendah. Android 12 memperkenalkan API platform baru yang memungkinkan aplikasi pihak ketiga memanfaatkan sepenuhnya sensor serbaguna ini. API baru mendukung perilaku unik sensor ini dan akan mempertimbangkan bahwa API tersebut mungkin mendukung konfigurasi dan kombinasi streaming yang berbeda saat beroperasi dalam mode resolusi penuh atau 'resolusi maksimum' dibandingkan mode 'default'.

Grafik dan gambar

Memberi aplikasi akses langsung ke rekaman aktivitas tombstone

Mulai dari Android 12, Anda dapat mengakses tombstone masalah pada native code aplikasi Anda sebagai buffering protokol melalui metode ApplicationExitInfo.getTraceInputStream(). Buffering protokol diserialisasi menggunakan skema ini. Sebelumnya, satu-satunya cara untuk mendapatkan akses ke informasi ini adalah melalui Android Debug Bridge (adb).

Untuk mengetahui informasi selengkapnya, lihat Memberi aplikasi akses langsung ke rekaman aktivitas tombstone

Dukungan image AVIF

Android 12 memperkenalkan dukungan untuk gambar yang menggunakan Format File Image AV1 (AVIF). AVIF adalah format penampung untuk gambar dan urutan gambar yang dienkode menggunakan AV1. Cara ini memanfaatkan konten enkode intra-frame dari kompresi video. Proses ini akan meningkatkan kualitas gambar untuk ukuran file yang sama secara signifikan jika dibandingkan dengan format gambar lama, seperti JPEG. Untuk melihat lebih dalam tentang manfaat format ini, lihat postingan blog dari Jake Archibald.

Blur lebih mudah, filter warna, dan efek lainnya

Android 12 menambahkan RenderEffect baru yang menerapkan efek grafis umum seperti blur, filter warna, efek shader Android, dan lainnya ke View dan hierarki perenderan. Efek dapat digabungkan sebagai efek berantai (yang membentuk efek dalam dan luar) atau efek campuran. Perangkat Android yang berbeda mungkin mendukung atau tidak mendukung fitur ini karena keterbatasan daya pemrosesan.

Efek juga dapat diterapkan pada RenderNode yang mendasarinya untuk View dengan memanggil View.setRenderEffect(RenderEffect).

Untuk menerapkan RenderEffect:

view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))

Dekode gambar animasi native

Pada Android 12, API ImageDecoder NDK telah diperluas untuk mendekode semua data frame dan waktu dari gambar yang menggunakan format file GIF animasi dan WebP. Saat diperkenalkan di Android 11, API ini hanya mendekode gambar pertama dari animasi dalam format ini.

Gunakan ImageDecoder, bukan library pihak ketiga, untuk mengurangi ukuran APK lebih banyak dan dapatkan manfaat dari update selanjutnya yang terkait dengan keamanan dan performa.

Untuk mengetahui detail API selengkapnya, lihat referensi API dan sampel di GitHub.

Konektivitas

Menjaga aplikasi pendamping tetap aktif

Untuk mendukung kebutuhan aplikasi pendamping agar tetap berjalan guna mengelola perangkat, Android 12 memperkenalkan API yang akan melakukan hal berikut:

  • Memungkinkan Anda mengaktifkan aplikasi saat perangkat pendamping berada dalam jangkauan.
  • Menjamin bahwa proses akan terus berjalan saat perangkat berada dalam jangkauan.

Untuk menggunakan API, perangkat Anda harus terhubung dengan menggunakan Pengelola Perangkat Pendamping. Untuk informasi selengkapnya, lihat CompanionDeviceManager.startObservingDevicePresence() dan CompanionDeviceService.onDeviceAppeared().

Profil Pengelola Perangkat Pendamping

Dialog izin yang menggunakan profil perangkat pendamping untuk meminta beberapa izin dalam satu permintaan.

Aplikasi partner di Android 12 (API level 31) dan yang lebih baru dapat menggunakan profil perangkat pendamping saat terhubung ke smartwatch. Menggunakan profil dapat menyederhanakan proses pendaftaran dengan menggabungkan pemberian sekumpulan izin khusus jenis perangkat ke dalam satu langkah.

Izin paket diberikan ke aplikasi pendamping setelah perangkat terhubung, dan hanya berlangsung selama perangkat terasosiasi. Menghapus aplikasi atau menghapus pengaitan akan menghapus izin.

Untuk mengetahui informasi selengkapnya, lihat AssociationRequest.Builder.setDeviceProfile().

Peningkatan estimasi bandwidth

Pada Android 12, kemampuan estimasi bandwidth yang disediakan oleh getLinkDownstreamBandwidthKbps(), dan getLinkUpstreamBandwidthKbps() ditingkatkan agar Wi-Fi dan konektivitas seluler jadi lebih baik. Nilai yang ditampilkan sekarang mewakili throughput rata-rata terukur sepanjang waktu dari pengguna setiap operator atau SSID WiFi, jenis jaringan, dan level sinyal, di semua aplikasi pada perangkat. Hal ini dapat menampilkan perkiraan throughput yang diharapkan yang lebih akurat dan nyata, dapat memberikan estimasi tentang start cold aplikasi Anda, serta memerlukan lebih sedikit siklus jika dibandingkan dengan menggunakan metode estimasi throughput lainnya.

Peningkatan Wi-Fi Aware (NAN)

Android 12 menambahkan beberapa peningkatan pada Wi-Fi Aware:

  • Pada perangkat yang menjalankan Android 12 (API level 31) dan yang lebih baru, Anda dapat menggunakan callback onServiceLost() untuk mendapatkan notifikasi saat layanan yang telah ditemukan oleh aplikasi Anda hilang karena layanan tersebut berhenti atau keluar dari jangkauan.
  • Cara beberapa jalur data (Jalur Data NAN) disiapkan berubah menjadi lebih efisien. Versi sebelumnya menggunakan pesan L2 untuk bertukar informasi pembanding dari pembuat, yang menyebabkan latensi. Pada perangkat yang menjalankan Android 12 dan yang lebih tinggi, penjawab (server) dapat dikonfigurasi untuk menerima pembanding yang artinya bahwa informasi awal tidak perlu diketahui. Hal ini dapat mempercepat pengumpulan data dan memungkinkan beberapa link titik ke titik hanya dengan satu permintaan jaringan.
  • Pada perangkat yang menjalankan Android 12 dan yang lebih tinggi, Anda dapat memanggil WifiAwareManager.getAvailableAwareResources() untuk mencegah agar framework tidak menolak permintaan penemuan atau koneksi karena resource habis. Dengan nilai hasil metode ini, Anda bisa mendapatkan jumlah jalur data, jumlah sesi publikasi, dan jumlah sesi berlangganan yang tersedia.

Peer-to-Peer + Koneksi Internet Serentak

Jika perangkat yang menargetkan Android 12 (API level 31) dan yang lebih baru berjalan di perangkat yang memiliki dukungan hardware, penggunaan Koneksi peer-to-peer tidak akan memutuskan koneksi Wi-Fi yang ada saat membuat koneksi ke perangkat pembanding. Untuk memeriksa dukungan fitur ini, gunakan WifiManager.isMultiStaConcurrencySupported().

Mengaktifkan layar nonaktif untuk pembayaran NFC

Pada aplikasi yang menargetkan Android 12 dan lebih tinggi, Anda dapat mengaktifkan pembayaran NFC tanpa mengaktifkan layar perangkat dengan menyetel requireDeviceScreenOn ke false. Untuk mengetahui informasi selengkapnya tentang pembayaran NFC dengan layar nonaktif atau terkunci, lihat Perilaku layar nonaktif dan layar kunci.

Penyimpanan

Android 12 memperkenalkan kemampuan pengelolaan penyimpanan berikut:

Fungsi inti

Update aplikasi otomatis

Android 12 memperkenalkan metode setRequireUserAction() untuk aplikasi yang menggunakan PackageInstaller API. Metode ini memungkinkan aplikasi penginstal untuk melakukan update aplikasi tanpa mengharuskan pengguna untuk mengonfirmasi tindakan.

Informasi chipset perangkat

Android 12 menambahkan dua konstanta ke android.os.Build yang mengekspos informasi vendor dan model chipset SoC melalui SDK. Anda dapat mengambil informasi ini dengan memanggil Build.SOC_MANUFACTURER dan Build.SOC_MODEL masing-masing.

Update untuk API Java inti

Berdasarkan permintaan dan kolaborasi dengan developer, kami telah menambahkan library inti berikut di Android 12:

Class API
java.lang.Deprecated
java.lang.Byte
java.lang.Short
java.lang.Math
java.lang.StrictMath
java.util.Set copyOf()
java.util.Map copyOf()
java.util.List copyOf()
java.time.Duration
java.time.LocalTime