Mulai Android 13, sistem akan menampilkan konfirmasi visual standar saat konten ditambahkan ke papan klip. Konfirmasi baru akan melakukan hal berikut:
- Mengonfirmasi bahwa konten berhasil disalin.
- Memberikan pratinjau konten yang disalin.
Di Android 12L (API level 32) dan versi lebih lama, pengguna sering kali tidak tahu apakah mereka berhasil menyalin konten atau apa yang telah disalin.
Fitur ini menstandarkan berbagai notifikasi yang ditampilkan oleh aplikasi setelah menyalin dan menawarkan kontrol lebih atas papan klip kepada pengguna.


Menghindari notifikasi duplikat
Untuk menghindari duplikasi tampilan informasi, sebaiknya hapus notifikasi pop-up yang ditampilkan setelah menyalin dalam aplikasi di Android 13 dan versi lebih baru.


Contoh
Agar tidak menampilkan UI duplikat tentang konfirmasi penyalinan di Android 13, coba gunakan kode seperti contoh ini:
fun textCopyThenPost(textCopied:String) {
val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
// When setting the clip board text.
clipboardManager.setPrimaryClip(ClipData.newPlainText("", textCopied))
// Only show a toast for Android 12 and lower.
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2)
Toast.makeText(context, “Copied”, Toast.LENGTH_SHORT).show()
}
Perhatikan bahwa Anda tidak perlu menyertakan pesan pop-up setelah menyalin teks ke papan klip untuk Android 13 dan yang lebih baru.
Menambahkan konten sensitif ke papan klip
Jika aplikasi Anda mengizinkan pengguna untuk menyalin konten sensitif, seperti sandi atau
informasi kartu kredit, Anda harus menambahkan flag ke ClipDescription
ClipData di papan klip sebelum memanggil ClipboardManager#setPrimaryClip()
.
Menambahkan flag ini akan mencegah konten sensitif muncul dalam pratinjau
konten.


Untuk menambahkan flag pada konten sensitif, sertakan tambahan boolean ke ClipDescription
.
Semua aplikasi harus melakukan ini, apa pun API level yang ditargetkan.
// When your app targets API level 33 or higher
clipData.apply {
description.extras = PersistableBundle().apply {
putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
}
}
// If your app targets a lower API level
clipData.apply {
description.extras = PersistableBundle().apply {
putBoolean("android.content.extra.IS_SENSITIVE", true)
}
}